3
当我发现python regex模块允许模糊匹配时,我越来越高兴,因为它似乎是解决我许多问题的简单方法。 但现在我有一个问题,我没有从文档中找到任何答案。用Python正则表达式编译模糊正则表达式
如何使用新的模糊值功能将字符串编译为正则表达式?
为了说明我平时的需求,并给样本的一小段代码
import regex
f = open('liner.fa', 'r')
nosZ2f='TTCCGACTACCAAGGCAAATACTGCTTCTCGAC'
nosZ2r='AGGTCACATCAACGTCAACG'
#nini=regex.compile(nosZ2r{e<=3})
nimekiri=list(f)
pikkus=len(nimekiri)
count = 0
while (count < pikkus):
line = nimekiri[count].rstrip('\n')
m=regex.findall("(TTCCGACTACCAAGGCAAATACTGCTTCTCGAC){e<=3}", line)
n=regex.findall("AGGTCACATCAACGTCAACG{e<=3}", line)
if bool(m) & bool(n):
print nimekiri[count-1].rstrip('\n')
print line
count = count + 1
f.close()
正如你所看到的正则表达式与fuzzyness的3个错误做工精细。但我不得不手动输入整个字符串(nosZ2f/r)到findall中。 我无法编译具有错误/模糊性值的正则表达式。
将字符串(行nosZ2f/r)转换为模糊性值为3的正则表达式模式的正确语法是什么? (在注释行中看到的失败尝试)
使用输入字符串作为regexp的源的可能性对于我想到的任何实际有用的脚本都是至关重要的。 (没有太多的自动化,否则) 所以它会很高兴我,如果我可以frex。更换
m=regex.findall("(TTCCGACTACCAAGGCAAATACTGCTTCTCGAC){e<=3}", line)
与
m=regex.findall(nini, line) etc.
或者
m=regex.findall("string{e<=3}", line)