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"

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

4

2 回答 2

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

于 2012-06-14T00:06:18.913 回答
0

完整的正则表达式重构看起来像:

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

于 2021-04-08T23:59:06.807 回答