我试图抓住几个单词的大写字母,然后将它们包裹在span标签中。 我将preg_replace用于提取和包装目的,但未输出任何内容。

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

===============>>#1 票数:52 已采纳

您需要将模式放在圆括号/([AZ])/ ,如下所示:

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

===============>>#2 票数:29

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

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

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

\\ 0或$ 0表示整个模式匹配的文本。

===============>>#3 票数:8

从php.net上的preg_replace文档中:

替换可能包含\\ n或(自PHP 4.0.4起)$ n形式的引用,后一种形式是首选形式。 每个此类引用都将被第n个括号模式捕获的文本替换。

请参阅Flubba的示例。

===============>>#4 票数:5

在所需的捕获位置周围使用括号。

  ask by Polsonby translate from so

未解决问题?本站智能推荐: