gpt4 book ai didi

python - 使用正则表达式获取匹配字符串的百分比

转载 作者:行者123 更新时间:2023-12-01 09:28:20 28 4
gpt4 key购买 nike

我需要获取正则表达式与提供的字符串匹配的百分比,例如。我有正则表达式:

^[A-Za-z]{1,2}[0-9]{4}[a-zA-Z]{1,3}$

它试图匹配包含一两个字符、四个数字和一到三个字符的字符串。现在,如果我将此正则表达式应用于 aa1234bb ,它将匹配,但如果使用 aa1234 ,它将不匹配。

我想要的是在将正则表达式应用于字符串后,它应该返回字符串与正则表达式匹配的百分比,例如对于 aa1234 它与给定的正则表达式匹配几乎 70%,如果我们认为任何匹配的字符串中最多有 10 个字符。

最佳答案

我无法想象这在完全通用(即接受任何正则表达式)和完全在 re 中如何可能。

一种简单但可能足够的方法是二分搜索。这假设您的正则表达式始终绑定(bind)到字符串的前面。下面是一个粗略的、未经测试的示例来展示这个想法。显然,对于长字符串,它可能会执行正则表达式相当多次。

def percent_match(regex, target):
left = 0
right = len(target) - 1
current = right // 2
while left < right:
if regex.match(target[left:right]):
left = current
else:
right = current
current = (right - left) // 2
return m / len(target)

如果另一方面,您只需要使用一个正则表达式来执行此操作,那么 @ctwheels 方法可能最有意义。

关于python - 使用正则表达式获取匹配字符串的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50177941/

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