【问题标题】:regex for special character特殊字符的正则表达式
【发布时间】:2017-04-12 09:23:00
【问题描述】:

如果你认为你应该阻止我提问,欢迎你。

我有一个运行 pdf2txt 的 pdf 文件,并使用正则表达式对其进行了清理。但是,偶尔会有一行让我感到困惑并且无法使用正则表达式。它看起来像这样:

123456789101112131415161718192021222324252627282930313233341234567891011121314151617181920212223242526272829303132333439

在数字 34 和 39 之间(行尾)有一个方框,上面有两个零,下面有一个零和 C。它没有在我的问题中显示,所以我想作为一个控制字符,它的意思是“零空间”。我在这里没有找到这种字符:jrgraphix.net 或其他 unicode 集合。

我复制了控制字符并把它放在这里:RegExr,它变成了一个红色的子弹。在这里:https://regex101.com/(我的“声誉”只允许2个链接),它变成了一个黑色子弹。我在原始 PDF 文件中没有找到红色或黑色项目符号。

我也尝试用这样的代码(Python 3)摆脱这一行:

    if '123456789' in line:
        print('found this line')

...没有找到这一行。

到目前为止,我的正则表达式是:

    line = re.sub(r'\u25a0', '', line)
    line = re.sub(r'\u2022', '', line)
    line = re.sub(r'\u200B', '', line)
    line = re.sub(r'\u200b', '', line)

我处理空白的 Python 代码:

    elif re.match(r'^\s*$', line):
        pass

你能帮我如何让正则表达式或 Python 找到那个字符吗?

【问题讨论】:

  • 这是一个换页符。见ideone.com/VGzqXu
  • 您不需要正则表达式来删除换页符,只需使用.replace("\f", "")

标签: regex python-3.x unicode


【解决方案1】:

查找表单提要的正则表达式是\f,但是,如果您想清除未知字符,也许您可​​能只想定义允许的内容,而不是试图找出所有可能的不可用的东西..

【讨论】:

  • 当我在 bash 上搜索文本时,字符被解析为 ^L ...当我使用 \f 时,我可以捕获 RegExr 或 regex101 上的红点,但它在我的代码中不起作用.我想我会坚持你的建议来定义允许使用的字符,这为我省去了很多麻烦。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-13
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 2013-09-19
  • 1970-01-01
  • 2017-08-14
相关资源
最近更新 更多