我有一个表达
AA-BB/CC/DD
我想将其转换为
<AA-BB> <AA-CC> <AA-DD>
我所能做的就是将其配置为正则表达式替换。我无法弄清楚。
AA应该在一行的开头匹配。 -
和/
是字面字符,BB,CC和DD是数字,即\d+
所以初稿是......
^(\w+)([\-/]\d+)+
但我想要所有比赛,而不仅仅是贪婪的比赛。
(实际上这个也与AA-BB-CC-DD相匹配,但是没关系,虽然不符合规格)
答案 0 :(得分:1)
不,你不能用正则表达式做到这一点。可能使用.net,因为你可以访问重复捕获组的所有中间结果......
Repeating a Capturing Group vs. Capturing a Repeated Group
这就是问题所在,如果您执行^(\w+)([\-/]\w+)+
之类的操作,则存储在group2中的值始终只是它匹配的最后一个模式。正则表达式/替换无法完成任务。
我会做类似的事情:
^(\w+)-([\w+\/]+)
然后用&#34; /&#34;分割第2组的内容。并将group1与由拆分产生的数组中的每个元素组合在一起。