在 PHP 中使用 preg_replace 时,我该如何获得匹配项?

2022-08-30 09:45:24

我试图抓住几个单词的大写字母,并将它们包装在span标签中。我正在使用preg_replace进行提取和包装,但它没有输出任何内容。

preg_replace("/[A-Z]/", "<span class=\"initial\">$1</span>", $str)

答案 1

您需要将模式放在括号中,如下所示:/([A-Z])/

preg_replace("/([A-Z])/", "<span class=\"initial\">$1</span>", $str)

答案 2

\0还将匹配整个匹配的表达式,而无需使用括号进行显式捕获。

preg_replace("/[A-Z]/", "<span class=\"initial\">\\0</span>", $str)

与往常一样,您可以转到 php.net/preg_replace 或 php.net/<任何搜索词>以快速搜索文档。引用文档:

\0 或 $0 是指与整个模式匹配的文本。


推荐