例如要匹配的字符串为:
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是否为空)但只能捕获第一个分组.
小弟不才,请高手指点!谢谢!
引用来自“Lax”的答案