处理unbalanced parenthesis情形,对正则字符串进行转义

使用 python re 处理数据时,程序提示“unbalanced parenthesis”,中文意思即为“不平衡的括号”。查看代码发现,在定义正则时使用了这样的做法:

1
re.compile(r"123" + str + "123")

然后排查发现数据中有几个例外的 str 含有括号,这些括号没有经过处理就直接传入了正则表达式中,变成了类似

1
r"123this is str)123"

的数据,造成错误。

翻阅 python re 文档发现,可以使用 re.escape 对字符串进行正则转义。如

1
this is str)

可以转成

1
this\ is\ str\)

这样传入正则就不会出现问题了。

以后写正则如果还要传字符串进去一定要细心这类问题