[英]Regex doesn't respect the length limits
我在Java中使用以下正則表達式來匹配用戶名:
^(?!.*\\..*\\..*)[A-Za-z]([A-Za-z0-9.]*[A-Za-z0-9]){8,15}$
我希望這個正則表達式匹配包含所有字母數字字符的字符串(以字母開頭),中間允許最多一個句點(點),大小在8到15之間。
因此,它有兩個問題:
為什么不考慮{8,15}
?
問題1 :您正在量化需要至少一個[A-Za-z0-9]
且任何數量的[A-Za-z0-9.]
之前的組。 因此已經需要至少8個字符。 另外你的正則表達式需要一個[A-Za-z]
才能在此構造之前至少= 9個字符。
問題2 :你正在量化一個包含[A-Za-z0-9.]*
任何數量的組,而這個{8,15}
所以上限是15x(任何數量)=∞
猜猜你所看到的正則表達式看起來與此類似:
^(?![^.]*\\.[^.]*\\.)[A-Za-z](?:\\.?[A-Za-z0-9]){7,14}$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.