在文本中,我想查找文本是否包含以下字符串:
之后 "http://p.thisistheurl.com/v/"
直到"jpg"
。
所以这是我写的python代码:
asdf = 'http://p.thisistheurl.com/v/adzl25/4321567/543276123/865.jpg'
regex = re.compile(r'http://p.thisistheurl.com/v/(.)*jpg')
regex.search(asdf)
<_sre.SRE_Match object; span=(0, 60), match='http://p.thisistheurl.com/v/adzl25/4321567/543276'>
如您所见,结果未显示"jpg"
的整个字符串。为什么不起作用?
答案 0 :(得分:1)
我不认为match=
之后显示的字符实际上是匹配的字符串的完整内容。它可能只是在50个字符后切断。
看cpython's implementation of SRE_Match.__repr__
,情况确实如此:50R
右边有吸烟枪。
result = PyUnicode_FromFormat(
"<%s object; span=(%d, %d), match=%.50R>",
Py_TYPE(self)->tp_name,
self->mark[0], self->mark[1], group0);
如果你访问实际匹配的字符串,而不是从匹配对象的打印表示中检查它,它会一直到jpg
:
>>> import re
>>> asdf = 'http://p.thisistheurl.com/v/adzl25/4321567/543276123/865.jpg'
>>> regex = re.compile(r'http://p.thisistheurl.com/v/(.)*jpg')
>>> print(regex.search(asdf).group(0))
http://p.thisistheurl.com/v/adzl25/4321567/543276123/865.jpg