在正则表达式中容纳两种类型的引号
作者:互联网
我正在使用正则表达式替换输入字符串中的引号.我的数据包含两种“类型”的引号-
" and “
两者之间有非常细微的差别.目前,我在正则表达式中明确提到了这两种类型
\"*\“*
我担心,尽管在将来的数据中,我的正则表达式可能会因报价的“类型”不同而失败.存在多少种不同类型的报价?有没有办法将它们标准化为一种类型,以使我的正则表达式不会破坏看不见的数据?
编辑-
我的输入数据包含HTML文件,并且正在将HTML实体和URL转义为ASCII
escaped_line = HTMLParser.HTMLParser().unescape(urllib.unquote(line.decode('ascii','ignore')))
其中line指定HTML文件中的每一行.我需要“忽略” ASCII,因为数据库中的所有文件都不具有相同的编码,并且在读取文件之前我不知道编码.
编辑2
我无法使用替换功能来做到这一点.我尝试了replace(””,”),但它没有替换其他类型的引号’“’.如果我将其添加到另一个替换函数中,则会引发非ASCII字符错误.
条件
不允许使用外部库,只能使用本机python库.
解决方法:
我认为Python的regex实现中没有“引号”字符类,因此您必须自己进行匹配.
您可以保留常用引号unicode字符的列表(here’s a list for a good start),并以编程方式构建正则表达式中与引号匹配的部分.
标签:quotes,double-quotes,python,regex 来源: https://codeday.me/bug/20191101/1984318.html