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

По моему разумению, это выражение будет соответствовать слову, имеющему минимум 8 символов и не более 30 символов, которая начинается с буквенным символом и может содержать только алфавитно-цифровые символы и/или подчеркивание.Regular Expression квантор ява

Но его соответствие со следующим словом. "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} для всего регулярного выражения? –