我想获得一个正则表达式: - 为0和1的任意序列(仅二进制) - 并且不包含00正则表达式不包含00
我知道他们分开,但我怎么能结合他们?
(?:[0-1]+)+
以上针对任何类型的0101的序列。
这里是问题的一部分的屏幕截图:
任何线索参考,将不胜感激。
我想获得一个正则表达式: - 为0和1的任意序列(仅二进制) - 并且不包含00正则表达式不包含00
我知道他们分开,但我怎么能结合他们?
(?:[0-1]+)+
以上针对任何类型的0101的序列。
这里是问题的一部分的屏幕截图:
任何线索参考,将不胜感激。
正则表达式,如0?(1+0)*
将匹配任何反对部分字符串,因此它将匹配字符串的中间部分,如000011000000
,它将匹配0110
。要检查整个字符串匹配是否需要添加字符串锚点的开始和结束,请给予^0?(1+0)*$
。这也将匹配一个空字符串。要匹配一个非空字符串,我们可以使用^0?(1+0)+$
,但这不匹配一个字符串与一个0
。所以我们需要添加一个替代(使用|
)来匹配0
,导致总表达^((0?(1+0?)+)|0)$
。
这些括号是捕捉括号,它们可以改为非捕捉形式,但这会使表达更大,并且在视觉上更加复杂。
我来到这个形式:
0?(1+0?)*
解释:
0?
- 的1
小号0?
非空序列 - 可以用0
1+
开始 - 其次最多只有一个0
(1+0?)*
- 2-3重复任意次数
亚当,代码匹配简单的'00'。演示:https://regex101.com/r/2CFroT/5 – Ibrahim
这些是3个单独的匹配:第一个“0”,第二个“0”(和一个空字符串)。 – Adam