使用preg_match,您可以使用<name>
,它會將其添加到輸出數組中。使用preg_replace並保留部分搜索
用了preg_replace,我想匹配的URL,如"http://<url>\s"
,然後有一個網址替換字符串中的保留,如"beforetheurl<url>aftertheurl"
使用preg_match,您可以使用<name>
,它會將其添加到輸出數組中。使用preg_replace並保留部分搜索
用了preg_replace,我想匹配的URL,如"http://<url>\s"
,然後有一個網址替換字符串中的保留,如"beforetheurl<url>aftertheurl"
下面是一個例子,我的評論:
<?php
$result = preg_replace("/(matched)/", 'before$1after', "matched");
echo $result;
輸出:beforematchedafter
這就是我正在尋找的。自從您技術上第一個正確回答我的問題(我從您的評論中瞭解到)之後,我會選擇等待限制後的答案。 – Rhyono
使用替換字符串中的一個back reference。從manual
echo preg_replace('#http://(\w+).*$#', 'sld = $1', 'http://mysite.com');
// output: sld = mysite
更多:
replacement可以包含形式\ n或(自PHP 4.0.4)$ N,後者的形式是優選的一個的引用。每個這樣的參考文獻將被替換爲第n個 括號內的模式。 n可以是0到99,\ 0或$ 0是指 由整個模式匹配的文本。從左向右(從1開始)將開括號計數爲 以獲得 捕獲子模式的編號。要替換使用反斜槓,它必須是 加倍(「\\」PHP字符串)。
使用替換字符串中的$ 1,你想要的位置。 $ n保存第n個匹配組的結果,$ 0保存整個匹配結果。見http://php.net/manual/en/function.preg-replace.php – tigrang