gpt4 book ai didi

python - 正则表达式的最大匹配长度

转载 作者:太空狗 更新时间:2023-10-30 02:14:06 28 4
gpt4 key购买 nike

确定正则表达式最大匹配长度的最简单方法是什么?

具体来说,我正在使用 Python 的 re模块。

例如对于 foo((bar){2,3}|potato) 它将是 12。

显然,使用 *+ 等运算符的正则表达式在理论上具有无限匹配长度;在那些情况下,返回一个错误或其他东西是可以的。使用 (?...) 扩展为正则表达式提供错误也是可以的。

我也可以得到一个近似的上限,只要它总是大于实际的最大长度,但不要太大

最佳答案

使用 pyparsinginvRegex模块:

import invRegex
data='foo(bar{2,3}|potato)'
print(list(invRegex.invert(data)))
# ['foobarr', 'foobarrr', 'foopotato']
print(max(map(len,invRegex.invert(data))))
# 9

另一种选择是使用来自this moduleipermute .

import inverse_regex
data='foo(bar{2,3}|potato)'
print(list(inverse_regex.ipermute(data)))
# ['foobarr', 'foobarrr', 'foopotato']
print(max(map(len,inverse_regex.ipermute(data))))
# 9

关于python - 正则表达式的最大匹配长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4063392/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com