[英]Quantifier in Java {n} is taking n+1 input
public static boolean validateState (String state)
{
return state.matches( "[1-9]\\d{2}-[1-9]\\d{4}" ) ;
}
當我將2和4放在方括號中時,為什么此功能在連字符前加3位,在連字符后加5? 請幫助..
在兩種情況下均請取下[1-9]
。 您實際上是在嘗試匹配:
或者更簡單地說: [0-9]
等效於\\\\d
。
您可能需要[1-9]\\\\d-[1-9]\\\\d{3}
或僅\\\\d{2}-\\\\d{4}
。
對於您提供的RegEx“ [1-9] \\ d {2}-[1-9] \\ d {4}”
a)[1-9]接受一位數字
b)d {2}接受兩位數字
因此,它總共接受3位數字(連字符之前,即“ [1-9] \\ d {2}”部分)。
同樣,連字符后也將接受4位數字。
您可能要使用以下任何一種:
1)\\ d {2}-\\ d {4}
2)[1-9] \\ d {1}-[1-9] \\ d {3}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.