在PHP中使用preg_replace时如何获得匹配结果?
我试图抓住几个字的大写字母,并将其包裹在span标签中。 我正在使用preg_replace进行提取和打包,但不输出任何内容。
preg_replace("/[AZ]/", "<span class=\"initial\">$1</span>", $str)
你需要把模式放在圆括号/([AZ])/
,像这样:
preg_replace("/([AZ])/", "<span class=\"initial\">$1</span>", $str)
\0
也将匹配整个匹配的expression式,而不使用圆括号进行显式捕获。
preg_replace("/[AZ]/", "<span class=\"initial\">\\0</span>", $str)
和往常一样,你可以去php.net / preg_replace或php.net / <任何search词>来快速search文档。 记下文件:
\ 0或$ 0是指整个模式匹配的文本。
从php.net上的preg_replace文档 :
replace可以包含\ n或(自PHP 4.0.4以上)$ nforms的引用,后者是首选forms。 每个这样的参考文献将被第n个括号内的模式所取代的文本所取代。
看Flubba的例子。
围绕您想要的捕捉使用括号。