我在单词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,”)
我如何阅读下两个字符串?
感谢您的帮助!
答案 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
<强>假设强>
我假设以下内容。如果我的假设不正确,上面的答案可能不是你想要的。
您正在使用Visual Basic。
如果遇到“[string id_string,”,这绝对可以确保您处于所需的字符串,并且将有一个结束括号来完成匹配的字符串集。 (这有助于保持正则表达式简单,但根据文本内容,它可能会返回意外结果。)
您需要匹配的[]括号和所有三个字符串。 (这使得正则表达式比使用向前/向后更简单,以便在模式匹配后忽略括号。)
您只需要在一个字符串中返回整个字符串列表,而不是范围,行号,位置等。(您应该能够使用string.Split函数来提取单个字符串如果需要的话。)
您只想要遇到的第一场比赛。 (如有必要,您可以使用regex.Matches获取所有匹配项。)
<强>参考强>
有关在Word中使用Regex的详细说明,请参阅2008年的以下网站:
http://www.codeproject.com/Articles/26922/Unleashing-the-Full-Power-of-Regular-Expressions-i