当前位置: 代码迷 >> python >> 正则表达式 Python“如果数字后跟字母字符”
  详细解决方案

正则表达式 Python“如果数字后跟字母字符”

热度:69   发布时间:2023-06-16 14:01:37.0

我有一个包含大量文档的 .txt 文件。 每个文件都以:

                               11 of 500 DOCUMENTS

数字明显不同。 数字前 31 个空格(如果重要的话)。 不幸的是,我对正则表达式很糟糕。 如何使用正则表达式拆分这些文档?

假设您要提取文档数量,这应该与匹配一位或多位数字\\d+并使用一样简单。 例子:

In [1]: import re

In [2]: s = "                               11 of 500 DOCUMENTS"

In [3]: match = re.search(r"(\d+) of (\d+) DOCUMENTS", s)
In [4]: match.group(1)
Out[4]: '11'

In [4]: match.group(2)
Out[4]: '500'

我认为您不需要为此使用正则表达式。 看起来你可以很容易地识别出这条线

line.startswith(31*' ')

或与

line.endswith('of 500 DOCUMENTS\n')

或者两者兼而有之,如果你是一个腰带和吊带的人。 假设一次读取一行文件没有问题,你不能做一些类似的事情吗?

document = []
for line in open('500docs.txt'):
    if line.startswith(31*' '):
       if document:
          analyze(document)
          document = []
       else:
          document.append(line)

这不处理文件中的最后一个文档,因此您还需要循环外的analyze(document)

你觉得这对你有用吗?