[英]Regex to match 10-15 digit number
我正在使用下面的正則表達式:
Pattern testPattern= Pattern.compile("^[1-9][0-9]{14}");
Matcher teststring= testPattern.matcher(number);
if(!teststring.matches())
{
error("blah blah!");
}
我的要求是:
我在正則表達式中遺漏了什么?
使用"^[1-9][0-9]{14}"
您將匹配15
位數字,而不是10-15
位數字。 {14}
量詞將恰好匹配先前模式的14
次重復。 使用{m,n}
量詞給出一個范圍:
"[1-9][0-9]{9,14}"
您不需要使用Matcher#matches()
方法的錨點 。 錨是隱含的。 在這里你可以直接使用String#matches()
方法:
if(!teststring.matches("[1-9][0-9]{9,14}")) {
// blah! blah! blah!
}
/^[1-9][0-9]{9,14}$/
將匹配10到15位數之間的任何數字。
屍檢 :
^
- 這必須是文本的開頭 [1-9]
- 1到9之間的任何數字 [0-9]{9,14}
- 0到9之間的任何數字匹配9到14次 $
- 這必須是文本的結尾 或者,一個替代方案,以后您可以一目了然 -
^(?!0)\\d{10,15}$
To match a 10-15 digit number which should not start with 0
在正則表達式中使用行結束錨$
,限制在9到14之間:
Pattern.compile("^[1-9][0-9]{9,14}$");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.