2012-06-14 126 views
0

我有以下模式和分组应用程序,我正在重构一个。下面将被放置在一个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" 

这是我能做的最好的,能不能做到更好呢?我是新来的。谢谢。

+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/?(.*) 
          ^^