如何修改匹配'c'偶数次的正则,使其仅允许输入'c'和'd'两种字符
符合要求的正则表达式
你只需要将原正则中匹配任意非c字符的[^c]全部替换为仅匹配d的d即可,最终正则为:
^d*(cd*cd*)*$
修改逻辑说明
- 原正则中的
[^c]允许匹配所有非c的任意字符,会导致c、d之外的字符也能通过校验,不符合「仅由c和d组成」的要求,替换为d后就限定了非c的位置只能是字符d - 正则规则逻辑:
- 开头可以有任意数量(含0个)的d
- 后面可以重复任意次「1个c + 任意数量d + 1个c + 任意数量d」的组合,保证每一组都会新增2个c,整体c的数量始终为偶数
匹配验证
ccddd:c共2个(偶数),仅含c、d,匹配成功dddddccc:c共3个(奇数),匹配失败cccddcdddd:c共4个(偶数),仅含c、d,匹配成功- 全d字符串:c共0个(偶数),匹配成功
内容的提问来源于stack exchange,提问作者Mixter
相关产品推荐
相关产品推荐

