如何匹配1的偶数和0的任意数量

问题描述:

我遇到了这个正则表达式问题。如何匹配1的偶数和0的任意数量

语言是{1,0}。

我想要偶数个1和任意数量的0的字符串。

样品字符串包括:

110 
101 
11 
0 
empty set 
1111 
10101010101 
+0

我不明白 – jedema 2014-09-05 13:24:18

+1

@jedema总数1应该是偶数,任意数量的0被接受 – axelduch 2014-09-05 13:27:04

+0

@jedema aduch是正确的1的数量必须是偶数,任意数量的0是正确的。由于0是偶数,所以1的0数是可以接受的。 – user3037172 2014-09-05 13:28:00

^(0*10*1)*0*$^(?:0*10*1)*0*$如果非捕获组是由你的正则表达式引擎支持。

无论您发现哪些文件更具可读性,它还可以进一步“简化”为^((0*1){2})*0*$

这匹配1成对,并根据需要填充任意数量的零。如果1 s的数字是奇数,则不匹配。它匹配空行。

它没有使用任何花哨的东西,所以它应该在大多数编程语言中工作。

请参阅regex101

+0

没有必要让'0 *'不贪心。 – Toto 2014-09-05 13:38:02

+0

事实上,你是对的。谢谢! – Vache 2014-09-05 13:38:27

+0

尽管这样做,非贪婪的'*?'和非捕获括号不是POSIX扩展正则表达式符号的一部分,因此至少有点花哨。 – 2014-09-05 13:38:47