【问题标题】:Extracting text strings from excel using new line as delimter in vbscript使用新行作为vbscript中的分隔符从excel中提取文本字符串
【发布时间】:2016-05-14 03:26:53
【问题描述】:

我在 Excel 工作表中有一个单元格,其文本字符串的格式如下所示:

第 1 部分:
1.一些文本字符串
2.另一个文本字符串

''excel 中的新行分隔两个部分''

1.第 2 节从这里开始
2. 第 2 节中的另一个文本字符串

我使用这段代码通过正则表达式提取section1和section2(记住匹配):

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。

【问题讨论】:

  • .* 是贪婪的。它的解析比你想象的要远得多。尝试将其替换为.*?
  • 将 .* 替换为 .*?,但结果相同。
  • ^([\w\W]*?)\n\n+([\w\W]+) 似乎有效,在regex101.com 试试吧

标签: regex vbscript


【解决方案1】:
RE.pattern = "([\w\W]+?)\n\n+([\w\W]+)"

是一种最简单的模式,可以分割由一个或多个空行分隔的文本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 2016-05-07
    • 1970-01-01
    • 2021-11-22
    • 2018-02-05
    相关资源
    最近更新 更多