Как конкретно упомянуть в регулярном выражении, чтобы избежать 6 символов? - PullRequest
0 голосов
/ 13 апреля 2020

Итак, я хочу регулярное выражение, которое будет принимать числа или буквенные символы. Если его номер должен начинаться с 1 и он может содержать от 3 до 8 символов, но он не должен иметь длину 6. Если это альфа, он может содержать от 3 до 6 символов.

Это то, что я сейчас использую. Мой вопрос: как я могу избежать длины 6 символов, если это цифра c?

      ("^[1][0-9]{2,7} | [A-Za-z]{3,6})$")

Может кто-нибудь предложить мне?

Ответы [ 2 ]

1 голос
/ 14 апреля 2020

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

^(?![0-9]{6}$)(?:1[0-9]{2,7}|[a-zA-Z]{3,6})$

См. Демоверсию regex

Подробности

  • ^ - начало строки
  • (?![0-9]{6}$) - не разрешено 6 di git допускается строка
  • (?:1[0-9]{2,7}|[a-zA-Z]{3,6}) - либо
    • 1[0-9]{2,7} - 1, а затем два до семь цифр
    • | - или
    • [a-zA-Z]{3,6} - от трех до шести букв ASCII
  • $ - конец строки
0 голосов
/ 13 апреля 2020

Просто разделите числовую часть c на две части:

("^([1]([0-9]{2,4}|[0-9]{6,7}) | [A-Za-z]{3,6})$")

Однако пробел и скобки отключены. Исправленное выражение :

^(1([0-9]{2,4}|[0-9]{6,7})|[A-Za-z]{3,6})$

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