匹配两点php正则表达式之间的内容

时间:2013-05-21 16:41:42

标签: php regex

我正在尝试创建一个正则表达式来替换

href="/test/any-word-here"

href="/search/theword.html"

我对正则表达式很新,所以我不确定我在做什么,但我想出了这个

preg_replace('[href="/test/]([a-zA-Z])\"', "href=\"/search/$2.html\"", $content);
有没有人能帮帮我?

2 个答案:

答案 0 :(得分:1)

你很亲密。 []是不受欢迎的。您还需要捕获整个单词而不只是一个字母。

preg_replace('#href="/test/(\w+)"#', 'href="/search/\1.html"', $content);

答案 1 :(得分:1)

我会饶恕你习惯性的“你不应该用正则表达式解析html”的回应;你的大部分问题仍然需要正则表达式:)

preg_replace('#href="/test/([^"]+)"#', 'href="/search/$1.html"', $content);

不要匹配正字符集,只需匹配任何字符,直到您点击双引号字符。假设适当的先前转义,那应该可以正常工作。