如何使用 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)
我在 .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)