[英]regular expressions with escaping round brackets
我正在嘗試編寫將接受以下電話號碼格式的表達式:
508 736 756
505050505
+48 505 505 505
(+48) 505 505 505
++48 505 505 505
(++48) 505 505 505
(23)692 36 99
23 692 36 99
我寫了以下表達式
^(([+]{0,2}?)?([+]{0,2}?)?([0-9 ]+)?)$
但是,此表達式僅涵蓋以下列出的格式:
508 736 756
505050505
+48 505 505 505
++48 505 505 505
23 692 36 99
我對括號字符()
的轉義有疑問。 因此,我無法涵蓋以下格式:
(+48) 505 505 505
(++48) 505 505 505
(23)692 36 99
我嘗試使用反斜杠將其轉義,但是由於某些原因,它無法正常工作。
... [(]?[+] {0,2} [)]?...
您可以使用以下正則表達式:
^((\(\+{0,2}[0-9]{1,2}\)|\+{0,2}[0-9]{0,2})?([0-9 ]+)?)$
請注意 ,您省略了括號內的數字。關於括號及其之間的數字,您也不能使括號為可選,因為括號在一起了,如果使它們成為可選,則正則表達式引擎將匹配一些電話號碼,例如(23692 36 99
。
並請注意,如果括號中的數字長度必須為2,則此正則表達式將與(2) 692 36 99
等數字匹配,您可以更改正則表達式中的renge。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.