【问题标题】:How to add variable error to regex fuzzy search. Python如何将变量错误添加到正则表达式模糊搜索。 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 的模糊匹配功能可能正是您想要的。

标签: python regex search coverage.py


【解决方案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'

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-11
  • 2019-02-18
  • 2020-10-22
  • 1970-01-01
  • 1970-01-01
  • 2013-10-09
  • 2017-04-07
相关资源
最近更新 更多