提取文本串
问题描述:
我具有其中具有格式化的文本串的Excel工作表单元格,如下所示:提取文本串
SECTION1:
1.Some文本串
2另一个文本字符串
'Excel中的一个新行分隔两节 ''
012这里
2.1.Section 2开始从第2
另一个文本字符串我用这个代码使用正则表达式来提取SECTION1和第2节(记住匹配):
RE.pattern = "(^Section1:\s.*\w)[\s]+(1\..*[\w]+$)"
RE.Global = True
RE.IgnoreCase = True
For iCnt = 1 To 2
arrStr(iCnt-1) = re.Replace(str, "$"&iCnt)
WScript.Echo arrStr(iCnt-1)
Next
但第一次记忆匹配的输出显示单元格的所有内容(Section1和Section2)。请帮助我了解如何分别解析section1和section2。
答
RE.pattern = "([\w\W]+?)\n\n+([\w\W]+)"
是最简单的模式,它将拆分由一个或多个空行分隔的文本。
'。*'是贪婪的。它的分析比你想象的要多得多。尝试用'。*?'替换*。* – Stavr00
*。*,但具有相同的结果。 –
'^([\ w \ W] *?)\ n \ n +([\ w \ W] +)'似乎可行,请在http://regex101.com上试试 – Stavr00