簡體   English   中英

帶圓括號的正則表達式

[英]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} [)]?...

演示: https : //regex101.com/r/hY5tG4/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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM