Regex, помогите с соответствием - PullRequest
3 голосов
/ 20 мая 2011

Здравствуйте, мне нужно придумать правильное регулярное выражение. Это может быть любое имя идентификатора, которое начинается с буквы или подчеркивания, но может содержать любое количество букв, подчеркиваний и / или цифр (все буквы могут быть в верхнем или нижнем регистре),Например, ваше регулярное выражение должно соответствовать следующим текстовым строкам: «_», «x2» и «This_is_valid». Оно не должно соответствовать следующим текстовым строкам: «2days» или «invalid_variable%».

пока это то, что я придумал, но я не думаю, что это правильно

/^[_\w][^\W]+/

Ответы [ 3 ]

2 голосов
/ 20 мая 2011

Сработает следующее:

/^[_a-zA-Z]\w*$/

Начинается с (^) буквы (верхнего или нижнего регистра) или подчеркивания ([_a-zA-Z]), за которым следует любое количество букв, цифр или подчеркивания(\w) до конца ($)

Подробнее о Регулярные выражения в Perl

1 голос
/ 20 мая 2011

Возможно приведенное ниже регулярное выражение:

^[a-zA-Z_]\w*$
0 голосов
/ 20 мая 2011

Если идентификатор находится в начале строки, то это просто

/^(_|[a-zA-Z]).*/

Если он встроен в более длинную строку, я думаю, что он не намного хуже, если предположить, что этоначало слова ...

/\s(_|[a-zA-Z]).*/

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