vbscript中的正则表达式模式可将文本与多行匹配

时间:2019-06-21 03:10:11

标签: regex vbscript

我与Slno在一起很长。在里面。我想用Slno从字符串中拆分句子。

示例文字:

1. Able to click new button and proceed to ONB-002 dialogue.
2. - Partner connection name **(text field empty)(MANDATORY)**
- GS1 company prefix  **(text field empty)(MANDATORY)**

我尝试使用vbscript regex匹配模式。但它仅匹配字符串的第一行(1.文本),而不匹配第二行。

^\d+\.\s(-?).*[\r\n].[\r\n\*+]*.*|^\d+\.\s(-?).*[\r\n]

在分割字符串时,为Slno。 2我也希望得到以下句子。很难找到。

请帮助我。

Set regex = CreateObject("VBScript.RegExp")
 With regex
   .Pattern = "^\d+\.\s(-?).*[\r\n].[\r\n\*+]*.*|^\d+\.\s(-?).*[\r\n]"
   .Global = True
 End With
Set matches = regex.Execute(txt)

我的期望是寻找与之匹配的正则表达式模式

1. Able to click new button and proceed to ONB-002 dialogue.

& 

2. - Partner connection name **(text field empty)(MANDATORY)**
- GS1 company prefix  **(text field empty)(MANDATORY)**

作为单独的句子或组。

1 个答案:

答案 0 :(得分:0)

如果我没记错的话,可以使用后得到包括行在内的2个单独部分:

^\d+\..*(?:\r?\n(?!\d+\.).*)*

说明

  • ^字符串的开头
  • \d+\.匹配1个以上的数字,后跟一个点
  • .*匹配除换行符0次以上以外的任何字符
  • (?:非捕获组
    • \r?\n(?!\d+\.).*匹配换行符,并使用负数超前查找来确定右边不是1+位数的数字,然后加上一个点
  • )*关闭非捕获组并重复0次以上

Regex demo