正则表达式模式优化

时间:2012-06-14 00:03:28

标签: regex optimization

我有以下模式和分组应用程序,我在一个重构。以下内容将放在xml文件中并读入正则表达式引擎:

 regexpattern="http://cars.mysite.com(.*)" application="http://www.mysite.com$1"

  regexpattern="http://ww.mysite.com(.*)" application="http://www.mysite.com$1 

    regexpattern="http://(bikes\.|new\.|)mysite.com/(.*)" application="http://www.mysite.com/$2"

加入到这个:

regexpattern="http://(cars\.|ww\.|bikes\.|new\.|)mysite.com(|/)(.*)"  application="http://www.mysite.com/$3"

这是我能做的最好的,可以做得更好吗?我是新来的。感谢。

2 个答案:

答案 0 :(得分:2)

1。你有一个反斜杠:

http://(cars\.|ww\.|bikes\.|new\.|)mysite\.com(|/)(.*)
                                         ^

2。您可以使用(|/)代替/?

http://(cars\.|ww\.|bikes\.|new\.|)mysite\.com/?(.*)
                                              ^^

3。使斜杠可选意味着它接受mysite.com.co.uk之类的东西,这可能不是你想要的。

4。另一个小改动是只写一次\.

http://((cars|ww|bikes|new)\.)?mysite\.com/?(.*)
                           ^^

答案 1 :(得分:0)

完整的正则表达式重构如下所示:

http://((?:(?:car|bike)s|(?:w|ne)w)\.)?mysite\.com/?.*