Regex: Если первая буква X, она должна заканчиваться буквой A или B. Как мне это сделать? - PullRequest
0 голосов
/ 07 февраля 2020

Regex Проблема для пароля:

  • Должен начинаться с X или Y.
  • За ним следует четное число (максимум 3 цифры).
  • И если пароль, начинающийся с X, должен заканчиваться буквой A или B.

Кто-нибудь может мне помочь, пожалуйста?

Ответы [ 3 ]

4 голосов
/ 07 февраля 2020

Попробуй это. Это Java, но выражение довольно ванильное regex

  • \\d{0,2} от 0 до 2 цифр

  • [02468] четное число git

  • $ конец строки

  • (?: начало группы без захвата
        String reg = "(?:X\\d{0,2}[02468].*[AB]$)|(?:Y\\d{0,2}[02468].*$)";
        System.out.println("X231swiwiwiA".matches(reg)); //odd number - false
        System.out.println("X232swiwiwiA".matches(reg)); // true
        System.out.println("Y632swiwiwiR".matches(reg)); // true

Примечание. Двойная косая черта предназначена для выхода из строки Java sla sh и передачи ее в двигатель регулярных выражений в виде единого sla sh. Возможно, вам придется настроить один sla sh для вашего двигателя.

3 голосов
/ 07 февраля 2020

Если ваш движок регулярных выражений поддерживает это, вы можете использовать положительный прогноз вот так

(?:X(?=.*[AB]$)|Y)\d{0,2}[02468].*

- edit

После прочтения обновленного вопроса этот было бы лучше

^(?:X(?=.*([AB]))|Y)\d{0,2}[02468]\1?$

Он также использует обратную ссылку для сопоставления буквы, захваченной положительным прогнозом.

2 голосов
/ 07 февраля 2020

Здесь вы go:

^(((Y)(([0-9]){0,2}[02468]){1})|((X)(([0-9]){0,2}[02468]){1}(A|B){1}))$
  • ^ - начало строки
  • () указывает группы захвата
  • | is or
  • [02468] для четных чисел
  • {1,3} - ограничитель количества для группы захвата (1 мин, 3 макс.)
  • $ is конец строки

Чтобы сделать это проще, если вы на Ма c, я предлагаю вам скачать приложение под названием Patterns . Шаблоны позволяют легко поиграть с регулярными выражениями и увидеть, что происходит, не дожидаясь ответа сервера при тестировании на таких сайтах, как regex101 и т. Д. c.

Вот как выглядит шаблон:

enter image description here

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