查找字符串{0,1,a}中包含子字符串01a和偶数1的字符串的正则表达式

时间:2012-08-25 06:36:23

标签: regex regular-language formal-languages

由其描述给出的常规语言:

{0,1,a}的所有字符串的集合,其中包含子字符串'01a'和偶数'1'。例如,'01a1','101a','101a101'。

如何构造指定语言的正则表达式?

1 个答案:

答案 0 :(得分:1)

一个关于它的oneliner:

^([0a]*1[0a]*([0a]*1[0a]*1)*)01a([0a]*1[0a]*1)*|([0a]*1[0a]*1)*01a([0a]*1[0a]*([0a]*1[0a]*1)*)$
基本上,它会检查

字符串,奇数为1s + 01a +字符串,偶数个

OR

字符串,偶数1s + 01a +字符串,奇数个