Регулярное выражение для буквенно-цифровых символов и подчеркивания - PullRequest
509 голосов
/ 03 декабря 2008

Я хотел бы иметь регулярное выражение, которое проверяет, содержит ли строка только прописные и строчные буквы, цифры и подчеркивания.

Ответы [ 18 ]

4 голосов
/ 24 июня 2010

Для меня возникла проблема, заключающаяся в том, что я хочу провести различие между буквенным, числовым и буквенно-цифровым, поэтому для обеспечения того, чтобы буквенно-цифровая строка содержала хотя бы одну букву и хотя бы одну цифру, я использовал:

^([a-zA-Z_]{1,}\d{1,})+|(\d{1,}[a-zA-Z_]{1,})+$
2 голосов
/ 03 апреля 2012

Для тех из вас, кто ищет буквенно-цифровые соответствия в юникоде, вы можете сделать что-то вроде:

^[\p{L} \p{Nd}_]+$

Дальнейшее чтение на http://unicode.org/reports/tr18/ и в http://www.regular -expressions.info / unicode.html

1 голос
/ 08 февраля 2019

Я полагаю, вы не используете символы латиницы и Юникода в своих матчах. Например, если вам нужно использовать символы «ã» или «ü», использование «\ w» не сработает.

Вы также можете использовать этот подход:

^[A-ZÀ-Ýa-zà-ý0-9_]+$

Надеюсь, это поможет!

1 голос
/ 03 декабря 2008

Вот регулярное выражение для того, что вы хотите с квантификатором, чтобы указать не менее 1 символа и не более 255 символов

[^ a-zA-Z0-9 _] {1,255}

1 голос
/ 10 июля 2009

соответствие диакритических знаков в регулярном выражении открывает целую банку червей, особенно если принять во внимание Unicode. Возможно, вы захотите прочитать о локалях Posix, в частности.

0 голосов
/ 14 ноября 2017

^ \ w * $ будет работать для комбинации ниже 1 123 1av за av1

0 голосов
/ 20 мая 2015

это работает для меня, вы можете попробовать [\ p {Alnum} _]

0 голосов
/ 03 декабря 2008

Чтобы проверить всю строку и не допустить пустых строк, попробуйте

^[A-Za-z0-9_]+$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...