Regex - принимает только буквы, пробел и - (тире) и цифры не допускаются - PullRequest
0 голосов
/ 08 февраля 2012

Мое текущее регулярное выражение: / [^ 0-9] / , которое не допускает только цифры. Но проблема в том, что он принимает другие символы, такие как (), а также принимает буквы с числами между ними. Пожалуйста, помогите.

Спасибо.

Ответы [ 4 ]

2 голосов
/ 08 февраля 2012

Сделайте ваши правила / требования.Если вы хотите разрешить только алфавиты - попробуйте

@"^[a-zA-Z]+$"

Подсказка - примените теорию множеств.Если все символы принадлежат универсальному набору.Все разрешено.После чего вы применяете правило: если вы не разрешаете номера, это означает, что разрешено все, кроме номеров.

1 голос
/ 08 февраля 2012
[-a-zA-Z ]+

Тире или буквы от 'a' до 'z' в любом случае или через пробел.

Или, для лучшей международной поддержки, подумайте, есть ли классы именованных символов, которые вы можете использовать. В системах POSIX вы можете написать:

grep -E '^[-[:alpha:] ]+$'

например, и это бы подбирало символы с акцентом. Вероятно, вам доступна аналогичная запись (вероятно, не , а ), доступная вам.

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

Вы подходите к проблеме с неправильного направления.

А как же:

[a-zA-Z \-]+
0 голосов
/ 08 февраля 2012

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

[^()\d]

Он не позволяет цифры и скобки (), как вы хотели. Даже числа между ними не появятся

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