我正在使用以下正则表达式模式来查找网址的一部分:
$pattern = "(\d+)-.*";
//$pattern = "(\d+)-.*[.]htm.*";
$replacement = "/going/somewhere?$1";
$subject = "http://mudomain.com/59016-string.htm";
preg_match($pattern, $subject,$matches);
$final = preg_replace($pattern, $replacement, $subject);
echo $final;
var_dump($matches);
模式应匹配
59016-string.htm
但我得到的只是输出为null。 我在这里做错了什么?
获得解决方案后编辑
供参考:
http://www.php.net/manual/en/regexp.reference.delimiters.php
答案 0 :(得分:3)
你忘记了正则表达式分隔符:
$pattern = '/(\d+)-.*/';
在PHP中,它们是不可或缺的。
另外,请注意我使用单撇号:这是有目的地完成的,因此我们不必使用\d
加倍反斜杠。