二进制序列的正则表达式,不包含00

时间:2016-11-19 22:54:17

标签: java c# regex binary

我正在尝试获得一个正则表达式:   - 具有0和1的任何序列。(仅限二进制)   - 并且不包含00

我知道它们是分开的,但我如何将它们结合起来?

(?:[0-1]+)+

上述任何类型的0101序列。

以下是问题部分的屏幕截图:

Here is the part of the question

任何线索参考将不胜感激。

3 个答案:

答案 0 :(得分:1)

我来到这种形式:

0?(1+0?)*

说明:

  1. 0? - 可以从0
  2. 开始
  3. 1+ - 1 s
  4. 的非空序列
  5. 0? - 最多只有一个0
  6. (1+0?)* - 2-3次重复

答案 1 :(得分:0)

您可以尝试这样的事情:

(10)+|(01)+|1+

演示:https://regex101.com/r/2CFroT/4

答案 2 :(得分:0)

0?(1+0)*之类的正则表达式将与字符串的任何部分匹配,因此它将匹配字符串的中间部分,例如000011000000,它将匹配0110。要检查整个字符串匹配是否需要添加字符串锚点的开头和结尾,并给出^0?(1+0)*$。这也将匹配一个空字符串。要匹配非空字符串,我们可以使用^0?(1+0)+$,但这与单个0的字符串不匹配。因此,我们需要添加一个替代方法(使用|)来匹配0,从而导致总表达式^((0?(1+0?)+)|0)$

这些括号是捕捉括号,它们可以更改为非捕捉形式,但这会使表达更大,视觉上更复杂。