首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >匹配0和1的正则表达式,其中连续的1必须是奇数?

匹配0和1的正则表达式,其中连续的1必须是奇数?
EN

Stack Overflow用户
提问于 2019-10-22 01:53:20
回答 4查看 323关注 0票数 3

我想写一个正则表达式,可以匹配二进制字符串,其中连续的1必须有奇数长度。

例如: 1001110111被接受,10110111不被接受。

代码语言:javascript
运行
复制
(1(11)*|0*)*

我想出的最好的是上面的那个,这是不正确的。这个正则表达式也将匹配连续的偶数1。还有其他想法吗?

提亚

EN

Stack Overflow用户

发布于 2019-10-22 02:16:20

我认为另一种选择是只匹配0或匹配可选的前导零,然后重复匹配奇数1,后跟1+ 0或字符串末尾。

代码语言:javascript
运行
复制
^(?:(?:0*1(?:11)*(?:0+|$))+|0+)$

  • ^开始string
  • (?:非捕获组
    • (?:非捕获组
      • 0*1(?:11)* 11
      • (?:0+|$)匹配0+零,1并重复0+次数string

匹配0+零或断言end of 1

代码语言:javascript
运行
复制
- `)+` Close non capturing group and repeat 1+ times to not match empty strings
- `|` Or
- `0+` Match only zeroes

  • ) Close non capturing group
  • $ End of string

(字符串关闭时不捕获字符串末尾)

Regex demo

票数 1
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58491724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档