我想把这regexs成一个正则表达式,但现在不如何:一个中有两个不同的正则表达式?
/^([0-9]{2,4})\-([0-9]{6,7})$/
/^\*([0-9]{4})$/
所以字符串可以得到XX(XX)-XXXXXX(X)或* XXXX
感谢。
我想把这regexs成一个正则表达式,但现在不如何:一个中有两个不同的正则表达式?
/^([0-9]{2,4})\-([0-9]{6,7})$/
/^\*([0-9]{4})$/
所以字符串可以得到XX(XX)-XXXXXX(X)或* XXXX
感谢。
合并两个正则表达式A
和B
,做到:
/(A|B)/
这可能会改变一组捕获括号中的顺序。另外请注意,可能不需要括号,例如A|B
可能适用于您的简单情况。
在支持具有命名捕捉的正则表达式的其他语言中,可以使用这些语言。
您可以OR-他们:
XX(XX)-XXXXXX(X)|*XXXX
,这样无论是将匹配...
你麻烦的是,第二个匹配,当你没有得到\ 1($ 1 )和\ 2($ 2)设置...
使用| (要么)。
即:
/^([0-9]{2,4})\-([0-9]{6,7})|(\*([0-9]{4})$/
是虽然你并不真的需要有括号;同样重要的是要注意“|”运算符比大多数其他运算符的绑定更松散,因此对于表达式的左侧和右侧分组通常需要使用括号。 – Pointy 2011-05-28 15:00:36