使用 docx 模块在 docx 文档中按索引查找字符串

Find a string by index in docx document with docx module

我正在使用 docx 模块和正则表达式查看 docx 文档。

我找到了紧接在我实际要提取的字符串之前的文本。如何引用下一个字符串?我可以使用索引吗?

for table in wordDoc.tables:
    for row in table.rows:
        for cell in row.cells:
            #grabbing the Payment Total Amount
            if 'Total Payment Amount:' in cell.text:
                 print(cell.text)
                 print(cell.text.index)


输出:

Total Payment Amount:
<built-in method index of str object at 0x000001F9376D26C0>

像这样的东西应该会给你这样的想法:

>>> text = "The quick brown fox"
>>> key = "quick"
>>> start = text.index(key)
>>> start
4
>>> text[start:]
'quick brown fox'
>>> text[start+len(key):]
' brown fox'

几个要点:

  • .index() 是一个方法,而不是 属性,所以你需要给它你想要的键值。

  • `.index() 给你key在字符串中的starting偏移量,你需要加上key的长度来定位后缀.

  • “切片”字符串以获得后缀是通过开放式范围(例如 s[n:])完成的。在 python string slice 上搜索以查找有关其工作原理的更多信息。

  • 您可能需要考虑单词之间的 spaces。使用 .lstrip() 方法可能是最好的方法,因为它适用于无 space、一个 space 或多个 space。

    >>> text[start+len(key):].lstrip()
    'brown fox'