Как я могу написать регулярное выражение, которое активируется, только если строка содержит определенные символы и цифры? - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь развить некоторые проблемы, которые дал мне мой инструктор, и одна из этих проблем - попросить меня проверить, соответствует ли входная строка следующим правилам:

  1. что строка содержит числа от 2 до 9.
  2. что строка содержит буквы TJQKA.
  3. Если внутри строки есть любая другая буква, кроме упомянутых, строка недопустима.

EX:

643TJAKQ = Хорошо

72MAJTQ = Не в порядке

1246AKJQ = Не хорошо

AKT432 = ОК

Это, очевидно, проблема Regex, потому что, если я попытаюсь отфильтровать по спискам, массивам или что-то еще, это займет слишком много времени, просто проверяя это (и я пишу код). Я пытался с этим reg exp (/[2-9]|(T|J|Q|K|A)/g), но это мусор.

Ответы [ 4 ]

3 голосов
/ 11 июля 2019

работает следующее регулярное выражение: ^[2-9TJQKA]+$

Объяснение:

^: начало

[2-9TJQKA]: определить допустимые значения

+: разрешить более одного символа Строки

$: конец

2 голосов
/ 11 июля 2019

Вы можете просто определить разрешенные символы:

[2-9TJQKA]+

1 голос
/ 11 июля 2019
Boolean okayOrNot = someString.matches("[2-9TJQKA]+");
0 голосов
/ 11 июля 2019

Я бы порекомендовал регулярное выражение: \b[2-9TJQKA]+\b

2-9 -принимать только цифры от 2 до 9

TJQKA -принимать только эти символы

\b -только слов только с этими символами

regex101 также на бесплатный форматер

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