php - 用 preg_replace 包裹 <b> 标签中的第一个单词——不能引用全字符串匹配

标签 php regex preg-replace backreference

我用 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/

相关文章:

php - 如何在PHP中获取信息/不同变量?

php - 在 PHP 中显示当前月份和年份的最简单方法,如 "Aug 2016"?

python - 如果该词在另一个词的特定数量的词内,则替换字符串中的一个词

jquery - 使用Jquery和正则表达式更改部分HREF

vim中的正则表达式unicode字符

javascript - 谁能用简单易懂的语言解释 ../和 ./在包含文件时有什么区别?

php - 在浏览器中使用 PHP 脚本运行 composer

php - Preg_replace YouTube视频字符串以在段落中嵌入代码

php - 删除字符串中不需要的字符

PHP 在字符串中查找 URLS 并建立链接。如果还没有在链接中