1

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

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

href="/search/theword.html"

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

preg_replace('[href="/test/]([a-zA-Z])\"', "href=\"/search/$2.html\"", $content);

谁能帮帮我?

4

2 回答 2

1

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

preg_replace('#href="/test/(\w+)"#', 'href="/search/\1.html"', $content);
于 2013-05-21T16:44:10.390 回答
1

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

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

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

于 2013-05-21T16:51:27.293 回答