Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式:提取文本块,定义的开始,未定义的结束_Regex_Vba_Split - Fatal编程技术网

Regex 正则表达式:提取文本块,定义的开始,未定义的结束

Regex 正则表达式:提取文本块,定义的开始,未定义的结束,regex,vba,split,Regex,Vba,Split,我有这样的文字: Date: 01.02.2015 //<-stable format something something more some random more Date: 02.02.2015 something random i dont know 现在,我在Date…之前添加了一些唯一的拆分器,而不是由拆分器拆分 问题:是否有可能只通过正则表达式获得这样的块 (我使用VBA解析文本,RegExp对象)而不是使用 \bDate:\s\d{1,2}\.\d{1,2}\.\d{

我有这样的文字:

Date: 01.02.2015 //<-stable format
something
something more
some random more
Date: 02.02.2015
something random
i dont know
现在,我在
Date…
之前添加了一些唯一的拆分器,而不是由拆分器拆分

问题:是否有可能只通过正则表达式获得这样的块


(我使用VBA解析文本,RegExp对象)

而不是使用

\bDate:\s\d{1,2}\.\d{1,2}\.\d{4}[\s\S]*?(?=\nDate:|$)
见演示

语法解释(来自链接站点):

  • \b断言单词边界处的位置:(^\w |\w$|\w\w |\w\w)
  • 日期:按字面意思匹配字符日期:(区分大小写)
  • \s匹配任何空白字符(等于[\r\n\t\f\v])
  • \d{1,2}将一个数字(等于[0-9])匹配1到2次,尽可能多地匹配,根据需要返回(贪婪)
  • 与角色匹配。字面意思(区分大小写)
  • \d{1,2}将一个数字(等于[0-9])匹配1到2次,尽可能多地匹配,根据需要返回(贪婪)
  • 与角色匹配。字面意思(区分大小写)
  • \d{4}将一个数字(等于[0-9])精确匹配4次
  • \s匹配任何空白字符(等于[\r\n\t\f\v])
  • \S匹配任何非空白字符(等于[^\r\n\t\f\v])
  • *量词-在零次和无限次之间进行匹配,匹配次数尽可能少,根据需要进行扩展(惰性),如前括号中所述
  • ?=正向前瞻-断言以下正则表达式匹配
    • \n删除选项1
      • \n匹配换行符(换行符)字符(ASCII 10)
      • 日期匹配字符日期:字面上(区分大小写)
    • $:选项2-$断言字符串末尾的位置,或字符串末尾右行终止符之前的位置(如果有)
\bDate:\s\d{1,2}\.\d{1,2}\.\d{4}[\s\S]*?(?=\nDate:|$)