2013-09-27 3 views
-1

Я новичок в RegEx, и я пытаюсь написать шаблон RegEx, который имеет минимум 6 и максимум 9 общих символов, где первые 3 символа являются буквами (без учета регистра, альфа только), а остальные цифры.RegEx точное повторение не работает

У меня есть следующая закономерность: ^\w{3}\d{3,6}$

Но по какой-то причине, что шаблон возвращает истину, когда я ввожу следующее: aa12345 или Ap4587 и так далее. Мне нужно, чтобы первые 3 символа были буквами (точными).

Надеюсь, кто-то сможет мне помочь.

Спасибо !!!

+0

'\ w' для буквенно-цифровых символов и' _' – JDB

ответ

5

\w эквивалентен [a-zA-Z0-9_]. Вы должны изменить регулярное выражение так:

^[a-zA-Z]{3}\d{3,6}$ 
+1

Ну ... '\ w' не * точно * эквивалентно' [a-zA-Z0-9_] '. Это зависит от двигателя. Например, в .NET '\ w' обычно эквивалентно' [\ p {Ll} \ p {Lu} \ p {Lt} \ p {Lo} \ p {Nd} \ p {Pc} \ p { Lm}] '. Если вы действительно хотели сопоставить '\ w' минус цифры и знаки препинания, я полагаю, что вы будете использовать' [\ p {Ll} \ p {Lu} \ p {Lt} \ p {Lo} \ p {Lm}] ' – JDB

+0

@ Cybȫʁgϟ37 Ну, да. Я не рассматривал символы Юникода. –

2

Используйте только [a-zA-Z] только для алфавитов. Я предпочитаю использовать [0-9] даже это так же, как \d согласованность

/^[a-zA-Z]{3}[0-9]{3,6}$/ 

\w матчи a-z, A-Z, 0-9, _ и должны использоваться только для алфавитно-цифрового символа

+0

Спасибо, это РАБОТАЕТ! Благодарим за помощь: D –

1

Попробуйте это:

^[a-zA-Z]{3}\d{3,6}$ 

как \w матчи a-z, A-Z, 0-9

2

Если вы хотите разрешить более широкий Диапазон значений Юникода, я бы рекомендовал:

[\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Lm}]{3} 

Это позволит строчные буквы, заглавные буквы, название, «другие» и модификаторы, как ваши первые три символа.

Например, [a-zA-Z]{3} исключает слово «Résumé» из-за специальных символов. Вышеупомянутый шаблон позволил бы это сделать.

Я рекомендую вам проверить документацию для классов регулярных выражений характера:

Character Classes or Character Sets

документация MSDN также очень хорошо, и большинство из них совместим со стандартными библиотеками регулярных выражений:

Character Classes in Regular Expressions

Смежные вопросы