Dex*_*ter 5 python regex quotes double-quotes
我正在使用正则表达式来替换输入字符串中的引号。我的数据包含两种“类型”的引号 -
\n\n" and \xe2\x80\x9c\nRun Code Online (Sandbox Code Playgroud)\n\n两者之间有非常微妙的区别。目前,我在正则表达式中明确提及这两种类型
\n\n\\"*\\\xe2\x80\x9c*\nRun Code Online (Sandbox Code Playgroud)\n\n但我担心在未来的数据中我可能会得到不同的“类型”引用,而我的正则表达式可能会失败。存在多少种不同类型的报价?有没有办法将它们标准化为一种类型,以便我的正则表达式不会因为看不见的数据而中断?
\n\n编辑-
\n\n我的输入数据由 HTML 文件组成,我将 HTML 实体和 URL 转义为 ASCII
\n\nescaped_line = HTMLParser.HTMLParser().unescape(urllib.unquote(line.decode(\'ascii\',\'ignore\')))\nRun Code Online (Sandbox Code Playgroud)\n\n其中 line 指定 HTML 文件中的每一行。我需要“忽略”ASCII,因为数据库中的所有文件都没有相同的编码,并且在读取文件之前我不知道编码。
\n\n编辑2
\n\n我无法使用替换功能来执行此操作。我尝试了 Replace(\'"\',\'\') 但它不会替换其他类型的引号 \'\xe2\x80\x9c\'。如果我将其添加到另一个替换函数中,它会抛出 NON -ASCII 字符错误。
\n\n健康)状况
\n\n不允许使用外部库,只能使用本机 python 库。
\n事实证明有一种更简单的方法可以做到这一点。只需在您用 python 编写的正则表达式前面附加文字 \'u\' 即可。
\n\nregexp = ru\'\\"*\\\xe2\x80\x9c*\'\nRun Code Online (Sandbox Code Playgroud)\n\n当您想要将正则表达式与字符串进行编译/搜索/匹配时,请确保使用 re.UNICODE 标志。
\n\nre.findall(regexp, string, re.UNICODE)\nRun Code Online (Sandbox Code Playgroud)\n\n不要忘记包括
\n\n#!/usr/bin/python\n# -*- coding:utf-8 -*-\nRun Code Online (Sandbox Code Playgroud)\n\n位于源文件的开头,以确保可以在源文件中写入 unicode 字符串。
\n| 归档时间: |
|
| 查看次数: |
2628 次 |
| 最近记录: |