如何向正则表达式模糊搜索添加变量错误.Python [英] How to add variable error to regex fuzzy search. Python

查看:60
本文介绍了如何向正则表达式模糊搜索添加变量错误.Python的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

import regex,re


sequence = 'aaaaaaaaaaaabbbbbbbbbbbbcccccccccccc' #being searched
query = 'aaabbbbbbbbbbbbccc' #100% coverage
query_1 = 'aaaabbbbbbbbcbbbcccc' #95% coverage
query_2 = 'aaabbbbcbbbbbcbccc' #90% coverage

threshold = .95
error = len(query_1) - (len(query_1)*threshold) #for query_1 errors must be <= 1

print regex.search(query_1 + '{e<={}}'.format(error),sequence).group(0)

我正在尝试向正则表达式搜索添加其他参数,因此它仅在按顺序搜索一定比例的查询时才有效.

Im trying to add additional parameters to a regex search so it only works if a certain percentage of the query is in sequence being searched.

例如,如果我希望它至少有 95% 的覆盖率,它适用于 query_1 但它不适用于 query_2

For example, if I wanted it to be at least 95% coverage it would work for query_1 but it would not work for query_2

推荐答案

使用 regex 模块:

import regex
sequence = 'aaaaaaaaaaaabbbbbbbbbbbbcccccccccccc' #being searched
query = 'aaabbbbbbbbbbbbccc' #100% coverage
query_1 = 'aaaabbbbbbbbcbbbcccc' #95% coverage
query_2 = 'aaabbbbcbbbbbcbccc' #90% coverage
threshold = 0.97
queries = (query, query_1, query_2)
for q in queries:
    error = int(len(q) - (len(q)*threshold))
    m = regex.search(r'(%s){e<=%d}'%(q,error), sequence)
    print 'match' if m else 'nomatch'

这篇关于如何向正则表达式模糊搜索添加变量错误.Python的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆