我想抓住幾個單詞的大寫字母,並將它們包裹在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