PHP Preg_replace:无法让替换部分工作,查找很好

时间:2011-08-04 19:36:13

标签: php regex

我不知道如何做到以下几点:

找到'/\s[2-9]\)/'的所有实例,并用<br />标记替换该空格 像这样简单的东西不起作用:

$preg_num = ' /\s[2-9]\)/';
$preg_fix = "'/<br>/[2-9]\)'";
preg_replace($preg_num,$preg_fix,$notes);

我需要将$ preg_fix变量更改为?

2 个答案:

答案 0 :(得分:3)

使用前瞻比后向引用更简单,恕我直言。

$preg_num = '/\s(?=[2-9]\))/';
$preg_fix = '<br/>';
preg_replace($preg_num,$preg_fix,$notes);

这样,您只需用<br/>替换空格。

答案 1 :(得分:2)

替换字符串不被视为正则表达式 - 它更像是文字字符串。如果您尝试将原始正则表达式中匹配的任何数字[2-9]放入替换字符串中,请将该字符作为一组捕获并使用反向引用。

$preg_num = '/\s([2-9])\)/';
$preg_fix = "<br />$1)'";
preg_replace($preg_num,$preg_fix,$notes);

了解更多信息: