我想把這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