微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式从4个字符串中识别正确位置的2个字符

如何解决正则表达式从4个字符串中识别正确位置的2个字符

例如,我有一个字符串“ abcd”,我希望找到所有匹配项,其中至少有两个匹配的字符在正确的位置。因此,ab12,a1c2、12cd等将全部匹配,因为它们在abcd的正确索引中至少包含2个字符。

我意识到我可以尝试通过/ab..|ac|a..d|.bc.|.bd|.cd/g来执行此操作,但是有没有更好/更简单的方法?>

谢谢!

解决方法

您可以使用PyPi regex软件包轻松地完成此操作。

See code working here

import regex

s = 'abcd'
a = ['ab12','a1c2','12cd','123d','abc4','abcd']

r = regex.compile('(?:'+regex.escape(s)+'){e<=2}')

for x in a:
    if(r.fullmatch(x)):
        print(x)

这使用模糊匹配 {e<=2}来标识具有2个或更少错误(插入,替换,删除)的字符串。如果需要,可以改为指定{s<=2}仅用于替换。

对于列表理解,您可以将以下三行替换为以下内容:

print([x for x in a if(r.fullmatch(x))])

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。