Как найти в таблице в файле docx множество словосочетаний (регулярных выражений) с помощью python?
Требуется найти, есть ли совпадения нескольких словосочетаний (регулярных выражений) в таблице в файле docx, и вывести все совпадения на экран.
Вот какой код я пишу:
import re
from docx import Document
document = Document('Altai.docx')
reg542 = [re.compile("(?i).....name one.*"),
re.compile("(?i).....name two.*")]
for table in document.tables:
for row in table.rows:
for cell in row.cells:
for paragraph in cell.paragraphs:
if re.match(reg542, paragraph.text):
print (paragraph.text)
Пишет, что ошибка
TypeError: unhashable type: 'list'
Ответы (2 шт):
Автор решения: CrazyElf
→ Ссылка
Попробуйте так:
reg542 = re.compile("(?i).....name one.*|(?i).....name two.*")
Если таких выражений будет много, то можно их через '|'.join() соединить из списка, если так будет удобнее.
Автор решения: Pavel
→ Ссылка
This one worked
import re
from docx import Document
document = Document('file.docx')
reg542 = re.compile(r"(?i)regex 1.*"
r"|(?i)regex 2.*"
r"|(?i)regex n.*")
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)