Регулярное выражение (буквенно-цифровое) - PullRequest
0 голосов
/ 26 октября 2009

Мне нужно регулярное выражение, чтобы позволить пользователю вводить буквенно-цифровую строку, которая начинается с буквы (не цифры).

Ответы [ 3 ]

10 голосов
/ 26 октября 2009

Это должно работать в любом двигателей регулярного выражения (RE). В мире PCRE есть более приятный синтаксис, но я предпочитаю, чтобы мой мог работать где угодно:

^[A-Za-z][A-Za-z0-9]*$

Обычно первый символ должен быть буквенным, за которым следует ноль или более буквенно-цифровых символов. Начальный и конечный теги используются для обеспечения соответствия всей строки. Без них вы можете соответствовать AB12 строки "@@@AB12!!!".

Полное объяснение:

^            start tag.
[A-Za-z]     any one of the upper/lower case letters.
[A-Za-z0-9]  any one of the upper/lower case letters or digits,
*            repeated zero or more times.
$            end tag

Обновление:

Как справедливо указывает Ричард Сзалай, это только ASCII (или, точнее, любая схема кодирования, в которой группы A-Z, a-z и 0-9 являются смежными) и только для "английских" букв.

Если вам нужны действительно интернационализированные RE (только вы знаете, является ли это требованием), вам необходимо использовать один из более подходящих механизмов RE, таких как PCRE, упомянутый выше, и убедиться, что он скомпилирован для режима Unicode. Затем вы можете использовать «символы», такие как \p{L} и \p{N} для букв и цифр соответственно. Я думаю, что RE в этом случае будет:

^\p{L}[\pL\pN]*$

но я не уверен. Я никогда не использовал RE для нашего интернационализированного программного обеспечения. См. здесь , чтобы узнать больше о PCRE.

1 голос
/ 26 октября 2009

Я думаю, что это должно сделать работу:

^[A-Za-z][A-Za-z0-9]*$
0 голосов
/ 26 октября 2009

Вы ищете такой шаблон:

^[a-zA-Z][a-zA-Z0-9]*$

Для этого требуется одна буква и любое количество букв / цифр после этого. Вы можете настроить допустимую длину.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...