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

时间:2016-05-21 21:33:29

标签: c# string docx

我在单词docx中找到了字符串,但我想读下两个字符串。 Exapmle: [string id_string,3,1000]

我知道 [string id_string, ... ] ,我找到了这个字符串,其中包含:

  

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

     

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

我如何阅读下两个字符串?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

Regex to the Rescue

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

在代码的开头添加Imports System.Text.RegularExpressions以启用Regex类。

尝试添加以下代码:

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,”,这绝对可以确保您处于所需的字符串,并且将有一个结束括号来完成匹配的字符串集。 (这有助于保持正则表达式简单,但根据文本内容,它可能会返回意外结果。)

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

  4. 您只需要在一个字符串中返回整个字符串列表,而不是范围,行号,位置等。(您应该能够使用string.Split函数来提取单个字符串如果需要的话。)

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

  6. <强>参考

    有关在Word中使用Regex的详细说明,请参阅2008年的以下网站:

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