在 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] 替换剩余的字符。