语言是由下一个条件定义的无限链。
条件:
1) The language chains may consist of symbols from the set {1,a,b}.
2) The language chains always start from subchain '1a'.
3) Every languange chain has to include at least one subchain 'aa'.
例如:
1aa, 1abaa, 1aaab, 1aab1a, ... etc.
我的决定是:
1a (1+a+b)* a (1+a+b)*
但我不太确定它是否正确。这是对的吗?
答案 0 :(得分:3)
您的解决方案将无效条件3.它将仅确保a
子链。例如,它将匹配不包含1abab
的{{1}}。这是我发现的工作:
aa
这从1a开始。然后根据下一个字符是否为a(如1aa,它将满足btw的所有3个条件),搜索1,a和b的任意组合或其中1a(a[1ab]*|[1ab]*aa[1ab]*)
的任意组合。
注意:在您的正式语言表示法中,给定的正则表达式如下:
aa
答案 1 :(得分:0)
我相信你不能形成一个与所有人匹配的正则表达式,只能匹配符合你标准的字符串。