2014-02-12 4 views
0

Я использую ^[a-zA-Z0-9_-]{6,14} regex для подтверждения имени пользователя, но я хочу заблокировать имя пользователя, начинающееся с цифры или всех цифр. Итак, какая модификация требуется в этом регулярном выражении ??Изменение регулярного выражения для подтверждения имени пользователя

Content of temp.txt 

user123 
User123 
USER 
UsEr12345 
123456 
_12345 

grep -w -E -o '^[a-zA-Z0-9_-]{5,14}' temp.txt 
user123 
User123 
USER 
UsEr12345 
123456 
_12345 

Но я хочу заблокировать имя пользователя, стоящего с символом _, цифрой и всеми цифрами.

ответ

5

Если вы запретили имя пользователя, начинающееся с цифры, вы также запрещаете имена пользователей, которые состоят только из строки цифр. Нет необходимости иметь дело со вторым условием, поскольку первое условие предотвращает это. Так просто вести с классом персонажа, исключающей цифрой (и подчеркивание и т.д.)

^[a-zA-Z][a-zA-Z0-9_-]{5,13}$ 

В этой схеме я прикрепленная к концу строки, как оригинал регулярного выражение не требует всей строки, которая будет соответствовать , Закрепляя начало и конец строки, вы обеспечиваете, чтобы только те символы, которые вы разрешаете, могут присутствовать в любой позиции. Анкеры на обоих концах также предотвращают согласование строк длиной более 14 символов.

+0

Вам нужно уменьшить квантор от 5 до 4, чтобы он соответствовал правильной минимальной длине. – Chris

+1

В начале своего поста он демонстрирует это регулярное выражение: '^ [a-zA-Z0-9 _-] {6,14}'. Я вычитал один из кванторов в этом регулярном выражении. Позже в своем посте он демонстрирует другое регулярное выражение: '^ [a-zA-Z0-9 _-] {5,14}'. Нет смысла предполагать, что он хотел использовать; Рахул, безусловно, может определить его квантификаторы. – DavidO

+0

Ах да, я вижу это сейчас. – Chris

0

Вы можете использовать это регулярное выражение

EDIT: Теперь попробуйте это один

(?![0-9_])^[a-zA-Z0-9-_]{6,14}$ 
+0

@DavidO ohh да теперь я сделал редактирование, это сработает – Amitesh

0

Это должно быть соответствующим:

^[a-zA-Z-][a-zA-Z0-9_-]{4,13}$ 
Смежные вопросы