我有两个正则表达式,在独立使用时工作得很好。
First : ^.+\.((jpeg)|(gif)|(png))\s*$ : search for .jpeg,gif or png at the end of url
Second : ^.+(javax.faces.resource|rfRes).* : search for two url patterns
我想结合上面两个表达式,以便“url以任何图像结束”或“url在其路径中有javax.faces.resource或rfRes”
我尝试使用|运营商加入两个,但它似乎不起作用如下:
^.+\.((jpeg)|(gif)|(png))\s*$ | ^.+(javax.faces.resource|rfRes).*
但它不起作用。
任何人都可以帮助加入以上两个正则表达式吗?
答案 0 :(得分:3)
|
运算符周围有额外的空格:
Your original regex
^.+\.((jpeg)|(gif)|(png))\s*$ | ^.+(javax.faces.resource|rfRes).*
^.+\.((jpeg)|(gif)|(png))\s*$|^.+(javax.faces.resource|rfRes).*
Fixed regex ^
|
您的解决方案会尝试匹配"字符串的结尾,然后是空格,"或者"空格然后是字符串的开头。"请记住,空格在正则表达式中很重要。
答案 1 :(得分:2)
组合表达式中的空格是错误的。您需要在行尾或行首之前留出空格,这在面向行的输入中是不可能的。
作为进一步的改进,你可以删除多余的"任何东西"比赛的一部分,以及大量冗余的括号。
javax\.faces\.resource|rfRes|\.(jpeg|gif|png)\s*$
另请注意正确引用文字句号(单个.
匹配任何字符)。