Страницы

Поиск по вопросам

воскресенье, 8 марта 2020 г.

Регулярка для поиска нецифрового идентификатора: текст не должен состоять только из цифр

#python #регулярные_выражения #django


Помогите пожалуйста составить регулярку по таким условиям: текст не должен состоять
только из цифр, текст может состоять из цифр, латинских букв обоих регистров, символов
подчеркивания и дефиса _-.

P.S. Правда, даже примера никакого привести не могу. Знаю как найти цифры \d, знаю
как найти буквы и символы [A-Za-z-_], но как сделать чтобы строка не могла быть только
цифровой не знаю. :(

P.P.S. Возможно будет понятнее если я укажу что я использую регулярку в django-вском
RegexValidator для валидации поля модели.

Начальным может быть любой из символов, в том числе и число. Это не принципиально.
Главное чтобы строка не могла состоять только из чисел.
    


Ответы

Ответ 1



Пробуйте так: ^(?!\d+$)[\da-zA-Z_-]+$

Ответ 2



Вашему условию удовлетворяет следующее регулярное выражение: /^[\da-z_-]*([a-z_-]+\d*|\d*[a-z_-]+)[\da-z_-]*$/i [a-z_-]+\d*|\d*[a-z_-]+ - эта часть обязывает до или после цифры встретиться не цифровому символу из набора разрешенных. Посмотреть пример работы: https://regex101.com/r/ZyQw18/1 Обновление: упрощено регулярное выражение /^([a-z_-]+\d*|\d*[a-z_-]+)+$/i Посмотреть пример работы: https://regex101.com/r/ZyQw18/4 Обновление 2: решение работает еще быстрее /^[\da-z_-]*[a-z_-][\da-z_-]*$/i Посмотреть пример работы: https://regex101.com/r/ZyQw18/2

Комментариев нет:

Отправить комментарий