由其描述给出的常规语言:
{0,1,a}的所有字符串的集合,其中包含子字符串'01a'和偶数'1'。例如,'01a1','101a','101a101'。
如何构造指定语言的正则表达式?
答案 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 +字符串,奇数个