正則表達式表達:對我使用下面的代碼E.164不工作
Pattern p = Pattern.compile("^\\+?[1-9]\\d{1,14}$");
stringNumber=stringNumber.replace(" ","");
Matcher m = p.matcher(stringNumber);
if (!m.matches())
{
[...]
}
而且圖案,這是應該的E.164格式正確檢測數字,不能正常工作,因爲我覺得它應該,因爲它是有效的E.164電話號碼,格式爲XXXXXXXXX的數字,X爲0到9之間的所有數字。儘管我期待這種模式,但我不明白爲什麼。
限制性較低的模式「^ \ +?\ d {10,14} $」確實正在工作,因爲它檢測到一些XXXXXXXXX不適合該格式。
也許最後一個模式足夠用於我的應用目的,但我想使用第一個模式(可以確定每個電話號碼都採用E.164格式),以獲得更大的範圍即使這些可能性很少,也是可能的。
什麼可能導致第一種模式的意外行爲?
XXXXXXXXX是否有任何理由不被您的模式接受? – TomekK
@TomekkK,只是模式上的+我認爲它不應該匹配那種模式,儘管它發生。 – user2638180
你想要在前面加「+」號嗎? – tima