Как использовать регулярное выражение для строки - PullRequest
1 голос
/ 06 августа 2020

Можно ли проверить с помощью регулярного выражения:

  1. полная строка - это числа И
  2. первый символ - это 7 или 8, затем полная длина строки должно быть 11 OR
  3. первый символ - 1, тогда полная длина строки должна быть 10
  4. OR первый Если символ равен 0, то полная длина строки должна быть 18 И для символа 8 должно быть 8 или 7 ИЛИ для символа 9 должно быть 1

Надеюсь, вы понимаете, что я имею в виду. Надеюсь, примеры помогут вам понять, что я имею в виду.

Вот мое решение (не работает полностью-> Я не знаю, как проверить, начинается ли оно с 0 и имеет длину 18 символов символ в позиции 8 должен быть 7или 8 или в позиции 9 символ должен быть 1):

^(?:[78]\d{10}|[1-69]\d{9}|[0]/d{18})$

Например:

  • 8 5556987456 -> начинается с 8 и длина 11 -> соответствует
  • 7 5556987456 -> начинается с 7 и длина 11 -> соответствует
  • 1 555698745 -> начинается с 1 и длина 10 -> соответствует
  • 0 000000 8 5556987456 -> начинается с 0, длина 18, а на позиции 8 - 8 -> соответствует
  • 0 000000 7 5556987456 -> начинается с 0, длина 18, а на позиции 8 - 7 -> совпадение
  • 0 0000000 1 556987456 -> начинается с 0, длина - 18, а на позиции 9 - 1 -> соответствует

Спасибо!

Ответы [ 2 ]

1 голос
/ 21 августа 2020

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

^(?:[78]\d{10}|1\d{9}|0\d{6}(?:[87]\d|\d1)\d{9})$

См. демонстрацию регулярных выражений

Подробности

  • ^ - начало строки
  • (?:[78]\d{10}|1\d{9}|0\d{6}(?:[87]\d|\d1)\d{9}) - одна из трех альтернатив:
    • [78]\d{10} - 7 или 8, а затем 10 цифр (всего 11)
    • | - или
    • 1\d{9} - 1, а затем 9 цифр (всего 10)
    • | - или
    • 0\d{6}(?:[87]\d|\d1)\d{9} - 0, затем 6 цифр, затем 8-й di git, равный 8 или 7, и любой di git, или любой di git и 9-й di git, равный 1, а затем еще 9 цифр (= 18 цифр)
  • $ - конец строки.
0 голосов
/ 06 августа 2020

Вот регулярное выражение: / ^ [78] \ d {10} $ /

«^» указывает начало строки, «$» указывает конец строки \ d означает цифры {10} означает, что ровно 10 [] - это группа допустимых значений

Второй вопрос зависит от того, поддерживает ли ваш движок Lookahead и Lookbehind https://www.regular-expressions.info/conditional.html

...