正则表达式不分组

时间:2017-11-20 03:50:28

标签: regex excel-vba vba excel

需要这个正则表达式的帮助

ABC          130  zlis               02-03/12 N180 Grouping req
A B Csd       130  pain          02/12 I80 alias

(\w+\s{0,3})(\d+)

正则表达式似乎并不像我需要的那样分组。

Desired Output,brackests是我试图检测的群体。

(A B Csd)(130)(疼痛)(02/12)(I80)(化名)

1 个答案:

答案 0 :(得分:1)

试试这个正则表达式:

([a-z ]+?)\s+(\d+)\s+([a-z]+)\s+([\d-\/]+)\s+([\w ]+)

Click for Demo

<强>解释

  • ([a-z ]+?) - 匹配字母或空格的1次出现(尽可能少)并将其捕获为Group1
  • \s+ - 匹配1个以上的空格字符
  • (\d+) - 匹配1个以上的数字并捕获为Group2
  • \s+ - 匹配1个以上的空格字符
  • ([a-z]+) - 匹配1个以上的字母和Capture as Group 3
  • \s+ - 匹配1个以上的空格字符
  • ([\d-\/]+) - 匹配1位以上的数字或-/并将其捕获为Group4
  • \s+ - 匹配1个以上的空格字符
  • ([\w ]+) - 匹配单词字符或空格的1 +次出现并捕获为Group5

请注意,我已分别对全局匹配,不区分大小写和多行使用gim标记。