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

时间:2018-06-21 09:38:29

标签: python regex

我想找到与另一个值最多匹配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)

item和Ref的长度不相同,因此不仅发生替换,而且输出表明仅制作了2个subs。

1 个答案:

答案 0 :(得分:0)

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