正则表达式。检查一组N个字符中是否存在特定字符

时间:2014-11-05 22:46:07

标签: regex match

字母表为{0,1}。我想知道5长度令牌是否至少有1个。所以如果我有这个字符串000000001,那么匹配应该是00001

2 个答案:

答案 0 :(得分:1)

这是蛮力解决方案:

( 1 (0|1) (0|1) (0|1) (0|1) ) | ( (0|1) 1 (0|1) (0|1) (0|1) ) | ( (0|1) (0|1) 1 (0|1) (0|1) ) | ( (0|1) (0|1) (0|1) 1 (0|1) ) | ( (0|1) (0|1) (0|1) (0|1) 1 )

没有空格:

(1(0|1)(0|1)(0|1)(0|1))|((0|1)1(0|1)(0|1)(0|1))|((0|1)(0|1)1(0|1)(0|1))|((0|1)(0|1)(0|1)1(0|1))|((0|1)(0|1)(0|1)(0|1)1)

答案 1 :(得分:1)

这样做:

(1 (0|1) (0|1) (0|1) (0|1)) | (0 1 (0|1) (0|1) (0|1))  | (0 0 1 (0|1) (0|1)) | (0 0 0 1 (0|1)) | (0 0 0 0 1)

我很确定你不能做得更好(在使用更少的非空白符号的意义上)。因为我们显然对空白持怀疑态度,所以这里没有任何:

(1(0|1)(0|1)(0|1)(0|1))|(01(0|1)(0|1)(0|1))|(001(0|1)(0|1))|(0001(0|1))|(00001)