正则表达式可在字符串后匹配多个特殊字符
我正在尝试按以下重要顺序提出正则表达式进行匹配
字符串加上2个或多个特殊字符,后接一个单词
字符串加上1个特殊字符,后接一个单词
字符串(没有特殊字符),后接一些单词
我能够使用正则表达式匹配所有模式
re.compile(r'keyword\W*\s*(\S*)', re.IGNORECASE|re.MULTILINE|re.UNICODE)
,但不能区分关键字后的不同情况。
例如: 考虑关键字是上面的字符串
如果我有字符串'keyword- + blah',我应该只能与1匹配
如果我有字符串'keyword-blah',我应该只能与2匹配
如果我有字符串'keywordblah',我应该只能匹配3个
答案 0 :(得分:2)
您可以使用字符类来指定您认为特殊的字符。然后使用量词{0,2}
匹配重复次数0、1或2次。
以下\w+
匹配单词字符1次以上。
请注意,\S
与非空格字符匹配,因此也将与-
或+
匹配
keyword[+-]{0,2}\w+