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