簡體   English   中英

Java {n}中的量詞接受n + 1個輸入

[英]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] 您實際上是在嘗試匹配:

  • 一個數字(1-9),然后是
  • 兩位數,后跟
  • 連字符,然后是
  • 一個數字(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.

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