正则表达式模糊匹配未按预期工作



我想找到与另一个值匹配的值,最多max_sub个替换。

我执行以下操作:

item = 'ASDDGH'
Ref = 'ASDDGY'
max_sub = 1
rx = re.compile(item+ '{s<=' + str(max_sub) + "}")
rx.search(Ref)

它像预期的那样返回以下内容:

<regex.Match object; span=(0, 6), match='ASDDGY', fuzzy_counts=(1, 0, 0)>

但是,如果我这样做:

item = 'ASDDGH'
Ref = 'ASDAGY'
max_sub = 2
rx = re.compile(item+ '{s<=' + str(max_sub) + "}")
rx.search(Ref)

我没有得到匹配项,即使字符串之间只有 2 个替换。

我做错了什么?

编辑:

谢谢,让它工作。

但是,我想知道为什么这显示为匹配:

item = 'WARQENW'
Ref = 'WARQRFWTAPLFDYW'
max_sub = 7
rx = re.compile("(" + item+ '){s<=' + str(max_sub) + "}")
rx.search(Ref)

项目和 Ref 的长度不同,因此发生的不仅仅是替换,但输出表明只进行了 2 个子。

更改为:rx = re.compile("(" + item+ '){s<=' + str(max_sub) + "}")

最新更新