PHP Preg_replace:不能让替换部分工作,查找是好的


PHP Preg_replace: can't get the replace part to work, finding is fine

我不知道怎么做:

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

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

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

使用forward比使用backreference简单,IMHO.

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

这样,您只需将空格替换为<br/>

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

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

查看更多信息:

  • preg_replacereplacement参数文件
  • 正则表达式分组:"Use Round括号for grouping "