за исключением одной части класса символов в регулярных выражениях Python - PullRequest
1 голос
/ 05 марта 2019

как я могу, кроме \ d в регулярном выражении ниже?

^[\d\w ]+$

. Сопоставляет строки с любыми словами, цифрами и пробелами. я хочу изменить это, чтобы принимать строки с любыми словами и пробелами.

я пробую ниже регулярное выражение, но оно также содержит цифры и пробел.

^[^\d\w ]+$

1 Ответ

1 голос
/ 05 марта 2019

Вы можете использовать

^(?:[^\W\d]| )+$

См. Демоверсию regex . Его также можно записать как ^(?:(?!\d)[\w ])+$.

Подробнее

  • ^ - начало строки
  • (?:[^\W\d]| )+ - 1 или более
    • [^\W\d] - символы, отличные от несловесных и цифровых символов
    • | - или
    • - пробел
  • $ - конец строки.

В ^(?:(?!\d)[\w ])+$, [\w ], который может совпадать с любым словом и символом пробела, он ограничен символом (?!\d) и поэтому не соответствует цифрам.

Или, если вам нужны только ASCII слова:

^[a-zA-Z_ ]+$

Пожалуйста, имейте в виду, что он также допускает подчеркивание, так как \w соответствует _ символам. Если вам это не нужно, используйте ^(?:[^\W\d_]| )+$ / ^(?:(?![\d_])[\w ])+$ / ^[a-zA-Z ]+$.

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