Шаблон соответствия на основе нескольких специальных символов - PullRequest
2 голосов
/ 21 октября 2019

Регулярное выражение для соответствия более чем одному специальному символу после строки

Я пытаюсь найти регулярное выражение для соответствия в порядке важности, как показано ниже

  1. Строкаплюс 2 или более специальных символа, за которыми следует некоторое слово

  2. Строка плюс 1 специальный символ, за которым следует некоторое слово

  3. Строка (и без специальных символов)за которым следует какое-то слово

Я могу сопоставить все шаблоны с регулярным выражением ниже

re.compile(r'keyword\W*\s*(\S*)', re.IGNORECASE|re.MULTILINE|re.UNICODE)

, но оно не различает разные сценарии после ключевого слова.

например: учитывая, что ключевое слово - это строка выше

Если у меня есть строка 'keyword- + blah', я смогу соответствовать только 1

, если у меня есть строка'keyword-blah' Я должен быть в состоянии сопоставить только с 2

, если у меня есть строка 'keywordblah', я должен быть в состоянии сопоставить только с 3

1 Ответ

2 голосов
/ 21 октября 2019

Вы можете использовать класс символов, чтобы указать, какие символы вы считаете специальными. Затем используйте квантификатор {0,2}, чтобы найти повторение 0, 1 или 2 раза.

Следующее \w+ соответствует 1+ разу символа слова.

Обратите внимание, что \S соответствует непропущенному символу, так что также будет соответствовать - или +

keyword[+-]{0,2}\w+

Regex demo

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