在 Python 中的大字符串上缩放正则表达式
Scaling regex on big strings in Python
我正在尝试 并将其转变为大数据情况,我可以:
将大子字符串的所有实例(例如 SSQPSPSQSSQPSS
(并且只允许 此子字符串中的一个 可能不匹配)匹配到更大的字符串,例如 SSPQQQQPSSSSQQQSSQPSPSQSSQPSSQPPSSSSQPSPSQSSQPSSSSQPSPSQSSQPSSSSQPSPSQSSQPSSSSQSPSSQSSQPSS
.
实际上,我的子字符串和我匹配它们的字符串有数百个,有时甚至数千个字母,我希望包含不匹配的可能性。
如何扩展 的正则表达式来解决我的大数据问题?有没有有效的方法来解决这个问题?
你可以试试这个,
>>> s = "SSPQQQQPSSSSQQQSSQPSPSQSSQPSSQPPSSSSQPSPSQSSQPSSSSQPSPSQSSQPSSSSQPSPSQSSQPSSSSQSPSSQSSQPSS"
>>> re.findall(r'(?=(SSQPSPSQSSQPSS|[A-Z]SQPSPSQSSQPSS|S[A-Z]QPSPSQSSQPSS|SS[A-Z]PSPSQSSQPSS))', s)
['SSQPSPSQSSQPSS', 'SSQPSPSQSSQPSS', 'SSQPSPSQSSQPSS', 'SSQPSPSQSSQPSS']
Likwise 添加模式,用 [A-Z]
替换剩余的字符。
我正在尝试
将大子字符串的所有实例(例如 SSQPSPSQSSQPSS
(并且只允许 此子字符串中的一个 可能不匹配)匹配到更大的字符串,例如 SSPQQQQPSSSSQQQSSQPSPSQSSQPSSQPPSSSSQPSPSQSSQPSSSSQPSPSQSSQPSSSSQPSPSQSSQPSSSSQSPSSQSSQPSS
.
实际上,我的子字符串和我匹配它们的字符串有数百个,有时甚至数千个字母,我希望包含不匹配的可能性。
如何扩展
你可以试试这个,
>>> s = "SSPQQQQPSSSSQQQSSQPSPSQSSQPSSQPPSSSSQPSPSQSSQPSSSSQPSPSQSSQPSSSSQPSPSQSSQPSSSSQSPSSQSSQPSS"
>>> re.findall(r'(?=(SSQPSPSQSSQPSS|[A-Z]SQPSPSQSSQPSS|S[A-Z]QPSPSQSSQPSS|SS[A-Z]PSPSQSSQPSS))', s)
['SSQPSPSQSSQPSS', 'SSQPSPSQSSQPSS', 'SSQPSPSQSSQPSS', 'SSQPSPSQSSQPSS']
Likwise 添加模式,用 [A-Z]
替换剩余的字符。