2016-05-13 47 views
0

我具有其中具有格式化的文本串的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。

+0

'。*'是贪婪的。它的分析比你想象的要多得多。尝试用'。*?'替换*。* – Stavr00

+0

*。*,但具有相同的结果。 –

+0

'^([\ w \ W] *?)\ n \ n +([\ w \ W] +)'似乎可行,请在http://regex101.com上试试 – Stavr00

回答

0
RE.pattern = "([\w\W]+?)\n\n+([\w\W]+)" 

是最简单的模式,它将拆分由一个或多个空行分隔的文本。