如何使用 python 计算 docx 中找到的元素数?

How to count number of found elements in docx with python?

我在 .docx 文件中找到了一些带有正则表达式的句子,并打印了与此代码的匹配项:

import re

from docx import Document

document = Document('Алтайский край.docx')

reg542 = re.compile(r"(?i)Доля записей на прием к врачу, совершенных гражданами дистанционно.*"
                    r"|(?i)Доля граждан, у которых сформированы интегрированные электронные медицинские карты.*"
                    r"|(?i)Доля граждан, находящихся на диспансерном наблюдении.*"
                    r"|(?i)Доля медицинских организаций.*"
                    r"|(?i)Доля врачебных консилиумов.*"
                    r"|(?i)Доля консультаций.*"
                    r"|(?i)Доля граждан..которым доступны врачебные.*"
                    r"|(?i)Доля приобретаемых за бюджетные.*")

for table in document.tables:
    for row in table.rows:
        for cell in row.cells:
            for paragraph in cell.paragraphs:
                if reg542.search(paragraph.text):
                    print(paragraph.text)

现在我想计算找到了多少匹配项,但我不知道如何计算,因为 len().count 不起作用。

我想你要找的是re.findall()https://docs.python.org/3/library/re.html#re.findall

还要考虑 re.finditer() https://docs.python.org/3/library/re.html#re.finditer,它为每个匹配项提供一个匹配对象,其中包含每个匹配项的开始索引等。

任何一个都可以让您计算特定段落中的匹配项数。

counter = 0
for paragraph in cell.paragraphs:
    matches = reg542.findall(paragraph.text)
    counter += len(matches)
    if matches:
        print(paragraph.text)

这对我有帮助

for table in document.tables:
    for row in table.rows:
        for cell in row.cells:
            for paragraph in cell.paragraphs:
                if reg542.search(paragraph.text):
                    print(paragraph.text)