我不知道如何做到以下几点:PHP的preg_replace:不能得到更换部分工作,发现是细
找到'/\s[2-9]\)/'
所有实例,并用<br />
标签替换空间。
东西这么简单不起作用:
$preg_num = ' /\s[2-9]\)/';
$preg_fix = "'/<br>/[2-9]\)'";
preg_replace($preg_num,$preg_fix,$notes);
什么我需要到$ preg_fix变量更改为?
我不知道如何做到以下几点:PHP的preg_replace:不能得到更换部分工作,发现是细
找到'/\s[2-9]\)/'
所有实例,并用<br />
标签替换空间。
东西这么简单不起作用:
$preg_num = ' /\s[2-9]\)/';
$preg_fix = "'/<br>/[2-9]\)'";
preg_replace($preg_num,$preg_fix,$notes);
什么我需要到$ preg_fix变量更改为?
使用先行比反向引用,IMHO简单。
$preg_num = '/\s(?=[2-9]\))/';
$preg_fix = '<br/>';
preg_replace($preg_num,$preg_fix,$notes);
这样,你只与<br/>
替换空间。
+1,对于这个用例来说,前瞻更有意义。 –
这对我很好。谢谢,我感谢帮助。 – mikepreble
替换字符串不被视为正则表达式 - 它更像是一个文字字符串。如果您试图将在原始正则表达式中匹配的数字[2-9]
放入替换字符串中,请将该字符作为一个组捕获并使用反向引用。
$preg_num = '/\s([2-9])\)/';
$preg_fix = "<br />$1)'";
preg_replace($preg_num,$preg_fix,$notes);
更多信息:
它为什么不起作用?你有错误信息吗?它说什么?你在检查错误状态还是错误返回值?看不到,请处理错误返回值,并请阅读手册实际使用的功能的工作原理。 – hakre
你能提供你的源文本(或部分)以及它应该被替换的内容吗? – scube