2016-05-21 18 views
0

我在字docx中找到字符串,但我想讀取下兩個字符串。 Exapmle: [字符串ID_STRING,3,1000]在word docx中讀取字符串與Microsoft.Office.Interop

我知道[字符串ID_STRING, ... ],我覺得這個字符串,這一點:

微軟.Office.Interop.Word.Range range = Document.Range();

(range.Find.Execute(FINDTEXT: 「[串ID_STRING」)

我如何讀取接下來的兩個字符串

感謝您的幫助

回答

0

正則表達式來! 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獲取所有匹配項。)

參考

在Word中使用正則表達式的詳細介紹,請參見以下站點從2008年:

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