2
回答
如何用正则分组捕获多个格式相同的子串?
滴滴云服务器,限时包月0.9元,为开发者而生>>>   

例如要匹配的字符串为:

data=",white=9,black=2,red=0"
忽略data中的空白符, 其格式符合",表示颜色的单词=一个或多个数字", 理解为颜色"键-值对", 这些键值对可以有个0个或多个, 无先后顺序要求, 但每一对都要求捕获; 为求简单,假定颜色限定为white,black,red3种,求匹配data的正则表达式.

我试着写了几个:

regex1 = "(,white=[0-9]+)?(,black=[0-9]+)?(,red=[0-9]+)?"

regex2="(,(?:white|black|red)=[0-9]+)+"

regex1可以正确捕获但对颜色出现的顺序有要求; regex2也可以正确匹配(再结合判断data是否为空)但只能捕获第一个分组.

小弟不才,请高手指点!谢谢!


<无标签>
举报
docici
发帖于4年前 2回/277阅
顶部