使用 Microsoft.Office.Interop 读取 word docx 中的字符串

read string in word docx with Microsoft.Office.Interop

我在 word docx 中找到了字符串,但我想阅读接下来的两个字符串。 例如: [字符串 id_string, 3, 1000]

我知道[字符串id_string, ...] 我找到了这个字符串:

Microsoft.Office.Interop.Word.Range range = Document.Range();

(range.Find.Execute(FindText: "[string id_string, ")

如何读取接下来的两个字符串?

感谢您的帮助!

救援正则表达式

这似乎是一个正则表达式匹配的机会。

在代码开头添加 Imports System.Text.RegularExpressions 以启用正则表达式 class。

尝试添加以下代码:

Dim docText = range.Text

Const  regularExpression As String = "\[string id_string,\s[^\]]+\]"

Dim regex = New Regex(regularExpression)
Dim match = regex.Match(docText)
Dim foundString = match.Value

假设

我假设如下。如果我的假设不正确,上面的答案可能不是您要找的。

  1. 您正在使用 Visual Basic。

  2. 如果遇到“[string id_string,”,这绝对确保您找到了所需的字符串,并且会有一个右括号来完成匹配的字符串集。 (这有助于使正则表达式保持简单,但根据文本的内容,它可能会 return 出乎意料的结果。)

  3. 您需要匹配的 [] 括号和所有三个字符串。 (这使得正则表达式比使用 look ahead/behind 在模式匹配后忽略括号更简单。)

  4. 您只想将整个字符串列表 return 编入一个字符串,而不是范围、行号、位置等。(您应该能够使用 string.Split 函数在需要时拉出单独的字符串。)

  5. 您只想要遇到的第一场比赛。 (如有必要,您可以使用 regex.Matches 获取所有匹配项。)

参考

有关在 Word 中使用 Regex 的详细介绍,请参阅以下 2008 年的站点:

http://www.codeproject.com/Articles/26922/Unleashing-the-Full-Power-of-Regular-Expressions-i