我有一个字符串:
0011
01
000111
000111
我需要像这样验证它们:“0”的计数必须与“1”的计数相同。所以“001” - 无效,“0011” - 有效。
如何使用正则表达式执行此操作?
答案 0 :(得分:0)
在Ruby中,您可以使用子例程:
m = /\b(0(\g<1>)?1)\b/.match('000111');
puts m;
000111
或者,您可以使用捕获组来匹配相邻的0
和1
,然后检查捕获的组长度:
m = /(0+)(1+)/.match('0011');
puts m[1].length === m[2].length ? "True" : "False";
m = /(0+)(1+)/.match('00111');
puts m[1].length === m[2].length ? "True" : "False";
您可以添加^
和$
,仅匹配由前导零和尾随1
s(m = /^(0+)(1+)$/.match('00111');
)组成的字符串。
demo program的输出:
True
False