2016-09-30 65 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}来写吗? –