python regex re.sub with strings

时间:2014-03-20 23:41:05

标签: python regex string

我正在尝试使用正则表达式来构建一个字滤镜。 目前,我有这种形式的东西:

value = re.sub(r'(([q])[ ]*[w][ ]*[e][ ]*[r])', r'\2***', value, flags=re.IGNORECASE)  

我希望能够做类似

的事情
value = regex_gen("qwer", value)  

我的regex_gen函数如下所示:

def regex_gen(filter_word, string):
first = 0
regex = "r'("
regex_result = "r'"
for c in filter_word:
    if first == 0:
        regex += "([" + c + "])"
        regex_result += "\2"
        first += 1
    else:
        regex += "[ ]*[" + c + "]"
        regex_result += "*"
regex += ")'"
regex_result += "'"
final = re.sub(regex, regex_result, string, flags=re.IGNORECASE)
return final

但是我的regex_gen函数不起作用 到目前为止,我只考虑字符和字符大小写之间的空格。如果文字过滤器的其他方法更容易实现,那么

1 个答案:

答案 0 :(得分:0)

目前,您拥有变量r'...'regex的{​​{1}}。更改代码,以便它不会在其上添加这些字符。例如,替换:

regex_results 进入 regex = "r'("
regex = "(" 进入 regex_result = "r'"
regex_result = "" 进入 regex += ")'"
删除 regex += ")"

regex_result += "'"替换为\2。例如:

\\2

现在再次运行您的代码。