我想抓住几个单词的大写字母,并将它们包裹在span标签中。我使用preg_replace作为提取和包装目的,但它不输出任何内容。如何在PHP中使用preg_replace时获得匹配结果?
preg_replace("/[A-Z]/", "<span class=\"initial\">$1</span>", $str)
我想抓住几个单词的大写字母,并将它们包裹在span标签中。我使用preg_replace作为提取和包装目的,但它不输出任何内容。如何在PHP中使用preg_replace时获得匹配结果?
preg_replace("/[A-Z]/", "<span class=\"initial\">$1</span>", $str)
你需要把模式括号/([A-Z])/
,像这样:
preg_replace("/([A-Z])/", "<span class=\"initial\">$1</span>", $str)
从preg_replace documentation上php.net:
更换可能包含的 引用形式\ n或(自PHP 4.0.4起)$ n, ,后者形式为 推出了一个。每个这样的参考文献 将被第n个括号内的模式所取代的文本 所取代。
查看Flubba的例子。
\0
也将匹配整个匹配表达式,而不使用圆括号进行显式捕获。
preg_replace("/[A-Z]/", "<span class=\"initial\">\\0</span>", $str)
与往常一样,你可以去php.net/preg_replace或php.net/ <任何搜索词>快速搜索文件。请参考文档:
\ 0或$ 0指的是整个模式匹配的文本。
围绕您想要的捕获使用括号。
@Gumbo:只要问题不是网站上的另一个问题的重复,回答自己的问题是完全正常的,甚至鼓励。 – 2009-06-23 18:00:09