我用 http://gskinner.com/RegExr/ 生成了以下正则表达式代码它在哪里工作,但是当我用 PHP 执行它时,它无法在替换字符串中使用匹配项。
preg_replace(
'/(?<=\>)\b\w*\b|^\w*\b/',
'<b>$&</b>',
'an example'
);
输出:
<b>$&</b> example
预期:
<b>an</b> example
我知道显然 $&
没有做正确的事情,但我怎样才能让它工作?
最佳答案
改用这个试试
preg_replace('/(?<=\>)\b\w*\b|^\w*\b/', '<b>$0</b>', $string);
$0 表示它将成为您的正则表达式中第一个匹配的东西,$1 将成为第二个等等。
你也可以使用反向引用;\0 从你所在的位置得到第一个匹配的东西,\1 得到第二个匹配的东西等等。More Info
关于php - 用 preg_replace 包裹 <b> 标签中的第一个单词——不能引用全字符串匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10833435/