我有以下正则表达式:
(?P<question>.+(?<!\[\[))
它旨在匹配hello world!
字符串hello world! [[A string typically used in programming examples]]
然而我只是匹配整个字符串,我不知道为什么。我已经尝试了各种环顾四周,但它就是行不通...
任何人都知道如何解决这个问题?
谢谢,
CFP。
我有以下正则表达式:
(?P<question>.+(?<!\[\[))
它旨在匹配hello world!
字符串hello world! [[A string typically used in programming examples]]
然而我只是匹配整个字符串,我不知道为什么。我已经尝试了各种环顾四周,但它就是行不通...
任何人都知道如何解决这个问题?
谢谢,
CFP。
您只是在匹配结束时检查环视,这意味着它可以首先匹配尽可能多的字符串,然后再检查环视。由于[[
字符串末尾没有,匹配成功。
如果您真的想在这里使用正则表达式,您需要做的是检查您添加的每个字符的环视,如下所示:
>>> s = 'hello world! [[A string typically used in programming examples]]'
>>> regex = re.compile('(?P<question>((?!\[\[).)+)')
>>> regex.match(s).group('question')
'hello world! '
s.find('[[')
但请注意,在这里使用类似的东西而不是正则表达式会容易得多。