3

我有以下正则表达式:

(?P<question>.+(?<!\[\[))

它旨在匹配hello world!字符串hello world! [[A string typically used in programming examples]]

然而我只是匹配整个字符串,我不知道为什么。我已经尝试了各种环顾四周,但它就是行不通...

任何人都知道如何解决这个问题?

谢谢,
CFP。

4

1 回答 1

3

您只是在匹配结束时检查环视,这意味着它可以首先匹配尽可能多的字符串,然后再检查环视。由于[[字符串末尾没有,匹配成功。

如果您真的想在这里使用正则表达式,您需要做的是检查您添加的每个字符的环视,如下所示:

>>> s = 'hello world! [[A string typically used in programming examples]]'
>>> regex = re.compile('(?P<question>((?!\[\[).)+)')
>>> regex.match(s).group('question')
'hello world! '

s.find('[[')但请注意,在这里使用类似的东西而不是正则表达式会容易得多。

于 2010-04-03T08:40:55.520 回答