为了回答这个问题,我创建了这个 Python 正则表达式来匹配任何子egg
字符串,后跟一个不属于 URL 的数字,前面是http://
:
>>> r = re.compile('(?:\s(?!http://\S*))egg\d')
然后我将它应用于以下字符串:
>>> a = "a egg1 http://egg2.com egg3 http://www.egg4.org egg5"
结果是:
>>> r.findall(a)
[' egg1', ' egg3', ' egg5']
正则表达式对于许多其他问题是不正确的,但有一个问题更多:为什么空格会出现在结果中?由于我使用了类似的前瞻断言(?:\s...)
,不应该从结果字符串中取出它吗?