我正在尝试创建一个正则表达式来替换
href="/test/any-word-here"
带
href="/search/theword.html"
我对正则表达式很新,所以我不确定我在做什么,但我想出了这个
preg_replace('[href="/test/]([a-zA-Z])\"', "href=\"/search/$2.html\"", $content);
有没有人能帮帮我?
答案 0 :(得分:1)
你很亲密。 []
是不受欢迎的。您还需要捕获整个单词而不只是一个字母。
preg_replace('#href="/test/(\w+)"#', 'href="/search/\1.html"', $content);
答案 1 :(得分:1)
我会饶恕你习惯性的“你不应该用正则表达式解析html”的回应;你的大部分问题仍然需要正则表达式:)
preg_replace('#href="/test/([^"]+)"#', 'href="/search/$1.html"', $content);
不要匹配正字符集,只需匹配任何字符,直到您点击双引号字符。假设适当的先前转义,那应该可以正常工作。