使用的测试站点:https://regex101.com/
示例文字
Tag [key=AccountAlias, value=MyAccount, tagDefinition=default-tag-definition]
RegEx 0(非重复)
(\w+) \[(.*)\]
捕获
Group 1. 0-3 `Tag`
Group 2. 5-76 `key=AccountAlias, value=MyAccount, tagDefinition=default-tag-definition`
在这里,group1捕获一个'type',这里是'Tag'
RegEx 1(重复)
((\w*)=([a-zA-Z-_0-9]+))
捕获
Match 1
Full match 5-21 `key=AccountAlias`
Group 1. 5-21 `key=AccountAlias`
Group 2. 5-8 `key`
Group 3. 9-21 `AccountAlias`
Match 2
Full match 23-38 `value=MyAccount`
Group 1. 23-38 `value=MyAccount`
Group 2. 23-28 `value`
Group 3. 29-38 `MyAccount`
Match 3
Full match 40-76 `tagDefinition=default-tag-definition`
Group 1. 40-76 `tagDefinition=default-tag-definition`
Group 2. 40-53 `tagDefinition`
Group 3. 54-76 `default-tag-definition`
此处Group2捕获类型的属性,而Group3捕获该属性的值。
目前,我必须应用2个正则表达式。如何将RegEx 0和RegEx 1组合在一起以一次性提取“类型”及其属性。
如果我将我的正则表达式合并为
/(\w+) \[((\w*)=([a-zA-Z-_0-9]+))\]/g
没有匹配项,出了什么问题。进行一些解释会有所帮助..