使用python 3:
In [275]: blah = "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffg"
In [276]: pat = re.compile("([a-z]{2,9999})")
In [277]: data = re.search(pat,blah)
In [278]: data
Out[278]: <_sre.SRE_Match object; span=(0, 125), match='fffffffffffffffffffffffffffffffffffffffffffffffff>match=''有可能打印出整个字符串吗?即一直到最终的'g'
发布于 2018-02-08 08:29:34
不,这不可能。该长度是在match对象的repr方法的格式字符串中硬编码的,并不是为了捕获匹配字符串的完整长度而设计的。
除非您编译自己的CPython构建(或任何Python风格),并修改match_repr中的match对象表示的精确度。默认精度为50:
result = PyUnicode_FromFormat(
"<%s object; span=(%d, %d), match=%.50R>",
Py_TYPE(self)->tp_name,
self->mark[0], self->mark[1], group0);正如其他人所建议的,只需使用match对象的group方法即可访问完整的匹配字符串。
发布于 2018-02-08 08:20:20
使用这个方法,您可以不受任何重复次数上限的约束:
import re
blah = "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffg"
r = re.compile(r'[a-z](.)\1{2,}') # no upper limit
try:
re.search(r, blah).group()
except AttributeError:
pass # whatever you want to do when there is no match发布于 2018-02-08 08:02:42
您可能正在寻找.group ...
import re
blah = "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffg"
pat = re.compile("([a-z]{2,99})")
data = re.search(pat,blah)
if data:
data.group(0) # returns 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'
else:
pass # do something when the string was not found!请参阅:https://docs.python.org/3.5/library/re.html#re.match.group
和
Why won't re.groups() give me anything for my one correctly-matched group?
https://stackoverflow.com/questions/48675282
复制相似问题