是否存在与(0 | 1)*(1100 | 1010 | 1001 | 0110 | 0101 | 0011)具有相同效果的简洁正则表达式?

前端之家收集整理的这篇文章主要介绍了是否存在与(0 | 1)*(1100 | 1010 | 1001 | 0110 | 0101 | 0011)具有相同效果的简洁正则表达式?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
基本上我想写一个正则表达式来表示任何{0,1}字符串,其最后4个字符具有相同数量的0和1.当然

(0|1)*(1100|1010|1001|0110|0101|0011)

会做的伎俩,但如果有更简洁的方式?

解决方法

这个正则表达式可以解决问题.

^[01]*(?=.*?1.*1)(?=.*?0.*0).{4}$

DEMO

^断言我们刚开始.

[01] *匹配0或1,零次或多次.

正向前瞻(?=.*?1. * 1)(?=.*?0. * 0).{4} $断言最后4个字符必须包含两个1和两个0.如果是,则匹配整行.而且@nhahdth提出了一个更有效的方法.

^[01]*(?=.{4}$)(?=.*?0.*0).*?1.*1.*

DEMO

猜你在找的正则表达式相关文章