2016-09-30 61 views
1
^\\p{Alpha}[\\p{Alnum}_]{8,30}$ 

按我理解,此表達式將匹配具有最少8個字符和最大30個字符的字,與字母字符開始,並且只能包含字母數字字符或/和下劃線。正則表達式量詞的java

但它與下面的詞匹配。 「aaaaaaaaaaaaaaaaaaaaaaaaaaaaaab」

有人可以幫助我理解這個

+2

不,從9到31個字符一個字相匹配。 –

回答

3

正則表達式9到31個字符相匹配。

^\\p{Alpha}[\\p{Alnum}_]{8,30}$ 
| --1 --|| --- 8 to 30 ----| = > 9 to 31 

使用

^\\p{Alpha}[\\p{Alnum}_]{7,29}$ 

只匹配8到30個字符。

只是在Java中使用的一張紙條:

String pat = "^\\p{Alpha}[\\p{Alnum}_]{7,29}$"; 
+0

@TJCrowder:如果你的意思是[這一個](http://stackoverflow.com/questions/22937618/reference-what-does-this-regex-mean),它是一個規範的關閉「請解釋我這個正則表達式「的問題。有時候,它也被濫用以關閉其他問題。 –

+0

夠公平的。 :-) –

+0

可以用整數正則表達式的量詞{8,30}來寫嗎? –