我的字符串类似于:
http://url:port?param1=foo¶m2=EDIT[a,b]¶m3=fuu¶m4=EDIT[c,33]
我需要一个正则表达式来提取:
http://url:port?param1=foo¶m2=
a
b
¶m3=fuu¶m4=
c
33
对于EDIT []的单次重复,我可以使用这个正则表达式:
(.*)EDIT\\[(.+)\\,(.+)\\](.*)
但我无法找到一个可以无限次重复的工作。类似的东西:
((.*)EDIT\\[(.+)\\,(.+)\\](.*)){1,}
答案 0 :(得分:0)
一种解决方案是使用<Route ...>
符号使非常通用的选择器非贪婪。在当前版本中,?
和.+
会抓取超出必要的字符数,因此他们会消耗第二个.*
。
正则表达式:
EDIT
看到它的实际效果:https://regex101.com/r/PuL3SW/1
编辑:根据评论,如果需要捕获网址的最后一部分,你可以使用另一种选择(第二次编辑:我还删除了从未捕获任何内容的第4个捕获组(.*?)EDIT\[(.+?)\,(.+?)\](.*?)
,注意:你可以始终确保最后一次捕获(.*?)
将是您网址的结尾,因为之前已经捕获了(.+)
之前的任何内容:
EDIT
在此处更新了正则表达式:https://regex101.com/r/PuL3SW/4