以下正则表达式可以匹配以
我不太擅长正则表达式,但是我已经在regexr.com上找到了所需的解决方案。
字符串开始
、空格
或:
开头,以字符串结束
、空格
或:
结尾的任何:text:
(以及一些其他规则)。我不太擅长正则表达式,但是我已经在regexr.com上找到了所需的解决方案。
(?<=\s|:|^)(:[^\s|:]+:)(?=\s|:|$)
:match1::match2: :match3:
:match4:
000:matchNot:
:matchNot:000
:match Not:
结果: :match1:
, :match2:
, :match3:
, :match4:
但是在Python 3中会引发错误。
re.search("(?<=\s|:|^)(:[^\s|:]+:)(?=\s|:|$)", txt)
re.error: look-behind需要一个固定宽度的模式
有人知道解决这个问题的好方法吗?如果有任何提示,将不胜感激。
(?<![^\s:]):[^\s:]+:(?![^\s:])
而不是(?:^|(?<=[\s:]))(:[^\s:]+:)(?=[\s:]|$)
。 - Wiktor Stribiżew