The following regex is supposed to match any :text:
that's preceeded by start-of-string
, whitespace
or :
, and succeeded by end-of-string
, whitespace
or :
(Along with a few extra rules)
I'm not great at regex but I've come up with the desired solution in regexr.com:
(?<=\s|:|^)(:[^\s|:]+:)(?=\s|:|$)
:match1::match2: :match3:
:match4:
000:matchNot:
:matchNot:000
:match Not:
Result: :match1:
, :match2:
, :match3:
, :match4:
But on Python 3 this raises an error.
re.search("(?<=\s|:|^)(:[^\s|:]+:)(?=\s|:|$)", txt)
re.error: look-behind requires fixed-width pattern
Anyone know a good workaround for this issue? Any tips are appreciated.