我试图抓住几个单词的大写字母并将它们包装在 span 标签中。我在用 预替换 用于提取和包装目的,但它不输出任何内容。

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

解决方案

您需要将模式放在括号中 /([A-Z])/, , 像这样:

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

其他提示

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

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

一如既往,您可以前往 php.net/preg_replace 或 php.net/<任意搜索词> 快速搜索文档。引用文档:

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

来自 preg_replace 文档 在 php.net 上:

替代品 可能包含表格 n或(由于PHP 4.0.4)$ n的引用,后者是首选的表单。这样的每个引用将被N'th括号模式捕获的文本所取代。

请参阅 Flubba 的示例。

在您想要的捕获周围使用括号。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top