使用preg_match,您可以使用<name>
并将其添加到输出数组。
使用preg_replace,我想匹配一个网址,例如"http://<url>\s"
,然后将该网址保留在替换字符串中,例如"beforetheurl<url>aftertheurl"
答案 0 :(得分:2)
在替换字符串中使用back reference。
echo preg_replace('#http://(\w+).*$#', 'sld = $1', 'http://mysite.com');
// output: sld = mysite
来自manual的更多内容:
替换可能包含形式的引用\ n或(因为PHP 4.0.4)$ n,后一种形式是首选形式。每个这样的引用都将被第n个捕获的文本替换 括号模式。 n可以是0到99,而\ 0或$ 0是指 整个模式匹配的文本。计算开括号 从左到右(从1开始)获得的数量 捕获子模式。要替换使用反斜杠,必须使用反斜杠 加倍(“\\”PHP字符串)。
答案 1 :(得分:2)
以下是我的评论示例:
<?php
$result = preg_replace("/(matched)/", 'before$1after', "matched");
echo $result;
输出:beforematchedafter