如何将变量错误添加到正则表达式模糊搜索。 Python
Posted
技术标签:
【中文标题】如何将变量错误添加到正则表达式模糊搜索。 Python【英文标题】:How to add variable error to regex fuzzy search. Python 【发布时间】:2013-06-30 11:31:29 【问题描述】: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)
我正在尝试向正则表达式搜索添加其他参数,因此它仅在查询的某个百分比被按顺序搜索时才有效。
例如,如果我希望它至少有 95% 的覆盖率,它适用于 query_1
,但不适用于 query_2
【问题讨论】:
regex module 的模糊匹配功能可能正是您想要的。 【参考方案1】:使用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'
【讨论】:
添加 (%s)(%d)%(variable1,variable2) 时叫什么?我想看一下文档,因为我在@perreal 之前已经看过了 称为旧式字符串格式:docs.python.org/2/library/stdtypes.html#string-formatting以上是关于如何将变量错误添加到正则表达式模糊搜索。 Python的主要内容,如果未能解决你的问题,请参考以下文章