是否存在与(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

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...