我想驗證一個電話號碼,該電話號碼可以包含10到13位數字,並且可以包含0到3個空格(可以在數據中的任何位置) 。請讓我知道如何做到這一點?用於驗證13位電話號碼的正則表達式是數字,最多可包含3個空格
我嘗試使用正則表達式^(\d*\s){0,3}\d*$
其工作正常,但我需要的字符總數限制在13
我想驗證一個電話號碼,該電話號碼可以包含10到13位數字,並且可以包含0到3個空格(可以在數據中的任何位置) 。請讓我知道如何做到這一點?用於驗證13位電話號碼的正則表達式是數字,最多可包含3個空格
我嘗試使用正則表達式^(\d*\s){0,3}\d*$
其工作正常,但我需要的字符總數限制在13
你想相同的文字對2個不同的整線的模式相匹配。
這是可以實現的或者通過隨後的匹配模式:
$ cat file
1234567 90
1234567890
123 456 789
123 456 789 01 23
$ sed -rn '/^([0-9] ?){9,12}[0-9]$/{/^([0-9]+){0,3}[0-9]+$/p}' file
1234567890
123 456 789
$
,或者您正則表達式引擎(perl的/的 「grep -P」/ JAVA /等)支持向前看符號 - 模式可以combined:
// This is Java
Pattern p = Pattern.compile("(?=^([0-9] ?){9,12}[0-9]$)(?=^([0-9]+){0,3}[0-9]+$)^.*$");
System.out.println(p.matcher("1234567 90").matches()); // false
System.out.println(p.matcher("123 456 789 0123").matches()); // true
System.out.println(p.matcher("123 456 789 01 23").matches()); // false
歡迎來到SO。請閱讀[關於您可以在此處詢問的問題類型](http://stackoverflow.com/help/on-topic)。具體來說:「詢問代碼的問題必須顯示對所解決問題的最低限度理解,包括嘗試解決方案,爲什麼他們不工作以及預期結果。」 – us2012
我試過正則表達式^(\ d * \ s){0,3} \ d * $,它能正常工作,但我需要將字符數限制爲13個。所以我試過^((\ d * \ s){0 ,3} \ d *){10,13} $但不起作用。我對正則表達式很陌生。 – sdinreach
可能重複的[電話號碼驗證綜合正則表達式](http://stackoverflow.com/questions/123559/a-comprehensive-regex-for-phone-number-validation) –