查找和替换URL的正则表达式不起作用或如何使其工作

时间:2012-05-14 10:33:33

标签: regex wordpress url replace

这里使用Regex Hero输入:

正则表达式:/category/*

替换字符串:/experiment/$0

目标字符串:http://google.co.in/blah_blah_blah/domainname.com/category/wp/

最终字符串:http://google.co.in/blah_blah_blah/domainname.com/experiment//category/wp/

预期网址

http://google.co.in/blah_blah_blah/domainname.com/experiment/wp/

如何获得预期的网址,我的正则表达式中有什么问题?

2 个答案:

答案 0 :(得分:1)

试试正则表达式:

/category/(.*)

在正则表达式.中是通配符,*是“0或更多”限定符。因此,正斜杠后匹配0个或更多(*)个字符(.)应表示为.*

替换:

/experiment/$1

$ 0是一个“伪组”,它保存整个匹配,即“/ category / ...”。您需要使用括号来定义其他组,以便您可以在替换模式中引用这些组,因此正则表达式中的(.*)部分。

答案 1 :(得分:1)

您需要更改正则表达式:

/category/([^/]+)

这将匹配下一个斜线的所有内容。请注意,我还将它括在括号中capture。或者,如果您在/category/使用后只想要一切:

/category/(.*)

然后您需要将替换人员更改为:

/experiment/$1

$1是第一场比赛。

这导致:

http://google.co.in/blah_blah_blah/domainname.com/experiment/wp/