基于多个特殊字符的匹配模式

时间:2019-10-21 14:33:11

标签: python regex

正则表达式可在字符串后匹配多个特殊字符

我正在尝试按以下重要顺序提出正则表达式进行匹配

  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 个答案:

答案 0 :(得分:2)

您可以使用字符类来指定您认为特殊的字符。然后使用量词{0,2}匹配重复次数0、1或2次。

以下\w+匹配单词字符1次以上。

请注意,\S与非空格字符匹配,因此也将与-+匹配

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

Regex demo