使用正则表达式确定在评估字符串中匹配哪个捕获组

问题描述

你好,我是正则表达式的新手,我很难弄清楚如何使用 VBA 中的正则表达式获取在评估字符串中匹配的组。

它可以在字符串中出现 4 种或更多不同的可能性,后跟 1 个或多个数字:

  • W 点 =
  • WR/KE-Point=
  • WNr-Point=
  • sst_P-Nr =

其中一个词在字符串中只出现一次

评估字符串: "3: CALL U(Base,EZSP,Nr1,Pr-nr=20,Offset=1,Path=2,WNr-Point=20,Pr=65,ON)"

使用的正则表达式: (?:(W-Point=)(\d*)|(sst_P-Nr=)(\d*)|(WR/KE-Point=)(\d*)|(WNr-Point=)(\d *))

到目前为止一切正常:Example

问题: 识别匹配的单词/数字对并获取其组号。现在我循环遍历结果并丢弃空的子匹配项。有没有更好或更有效的方法来做到这一点?

提前致谢。

解决方法

试试

atan2

更新:捕获 = 和任何空格