regex - 排除重复模式的最简单的正则表达式是什么?
问题描述
我尝试为不包含000
字母位置的字符串集编写正则表达式{0,1}
。我正在寻找运营商最少的解决方案。
我试过了:
(!+0+00)(1(!+0+00))*
哪里:
* 是 Kleene 星
+ 是联合运算符
!用于表示空字符串。
我也不确定它是否正确。
我不知道是否存在其他运算符,例如出现次数等。
解决方案
答案很简单:
(!|0|00)(11*(!|0|00))*
因为允许有任意数量的 1,并且在这些 1 之间我们最多可以有两个 0。至少如果我正确理解它是一种没有元素包含子字符串 000 的语言。
推荐阅读
- error-handling - 改造错误响应处理
- scala - 如何有效地并行化不同的 SparkSQL 执行?
- javascript - Typeahead/bootstrap-tagsinput 与 MVC 控制器不工作
- javascript - 在laravel中提交表单后记住滚动条的位置
- mysql - MySQL - 如果第一列值相同,则查询按第二列排序
- c# - 如何在 C# 中对嵌套字典进行乘法和求和?
- node.js - 有没有办法从给定的 URL 获取 HTML 内容(如果需要用户注册或 Api 对点击次数有限制)?
- java - 用于可用空间的 Matrix Fit 的 Java 搜索算法
- r - 更新用于情绪分析的 qdap 词典
- sql-server-2016 - 如何在使用 Always Encrypt 选项的加密列之后使用存储过程插入数据?