我正在尝试获得一个正则表达式: - 具有0和1的任何序列。(仅限二进制) - 并且不包含00
我知道它们是分开的,但我如何将它们结合起来?
(?:[0-1]+)+
上述任何类型的0101序列。
以下是问题部分的屏幕截图:
任何线索参考将不胜感激。
答案 0 :(得分:1)
我来到这种形式:
0?(1+0?)*
说明:
0?
- 可以从0
1+
- 1
s 0?
- 最多只有一个0
(1+0?)*
- 2-3次重复答案 1 :(得分:0)
答案 2 :(得分:0)
0?(1+0)*
之类的正则表达式将与字符串的任何部分匹配,因此它将匹配字符串的中间部分,例如000011000000
,它将匹配0110
。要检查整个字符串匹配是否需要添加字符串锚点的开头和结尾,并给出^0?(1+0)*$
。这也将匹配一个空字符串。要匹配非空字符串,我们可以使用^0?(1+0)+$
,但这与单个0
的字符串不匹配。因此,我们需要添加一个替代方法(使用|
)来匹配0
,从而导致总表达式^((0?(1+0?)+)|0)$
。
这些括号是捕捉括号,它们可以更改为非捕捉形式,但这会使表达更大,视觉上更复杂。