正则表达式:找到一个可变数字序列

时间:2016-01-27 23:04:33

标签: regex

我正在寻找一行中特定的数字序列。我最好用一个例子来解释:

00001 # first search criteria - line 1
00010 # second search criteria - line 2

所以每一行都有0或1的5位数。我正在寻找所有0的组合,除了1位数可以是1.这1可以在5位数的任何位置。

我的5位数为0的正则表达式代码是

^((0\s*?){5}) # there may be spaces between the numbers

上面的第1行将使用以下正则表达式代码进行选择:

^((0\s*?){4})\s*(1)

我的问题是如何在正则表达式代码中写入1的变化位置来覆盖5个案例/位置。 谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用基于前瞻性的正则表达式:

^(?=[0\s]*1[0\s]*$)(?:\s*[01]\s*){5}$

RegEx Demo

预测(?=[0\s]*1[0\s]*$)将仅在输入中的任何位置强制执行单1,其中(?:\s*[01]\s*){5}将确保输入只有0和1,长度为5位,同时允许任何位置的空格