#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
Комментариев нет:
Отправить комментарий