Выражение регулярного выражения для строк - PullRequest
2 голосов
/ 18 октября 2019

Мне нужно регулярное выражение, соответствующее строке со следующими характеристиками:

> Как минимум один буквенно-цифровой символ, за которым следует один или ноль '?'или один или ноль '!', но не содержит оба '?'а также '!'. Примеры допустимых строк: 'xyz', 'zy!', 'Xy?'

До сих пор я придумал это, что не работает:

[0-9]|[a-z] + ?! + ?? ^[^<>]+$

1 Ответ

1 голос
/ 18 октября 2019

Одной из опций может быть повторение класса символов [A-Za-z0-9]+ 1+ раз с последующим сопоставлением необязательного вопроса или восклицательного знака с использованием другого класса символов [?!]?

Чтобы не быть частью более крупного слова, вы могли бы начатьшаблон с надписью \b и конечным утверждением (?!\S), а не символ без пробелов справа.

\b[A-Za-z0-9]+[?!]?(?!\S)

Regex demo

Для точного соответствияТолько строка, вы можете использовать якоря ^ для подтверждения начала и $ конца строки.

^[A-Za-z0-9]+[?!]?$

Regex demo

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