处理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\) |
这样传入正则就不会出现问题了。
以后写正则如果还要传字符串进去一定要细心这类问题