是否可以创建描述如下词的正则表达式:
aabc
aaaabcbc
aaaaaabcbcbc
创建单词时,右侧的每次出现(bc
)都与左侧的出现(aa
)相关联。
以下字词无效:
aa
bc
aaabc
aaaabc
aabcbc
答案 0 :(得分:2)
不能用正则表达式来表达它。那是因为,你的表达式需要一些“aa”后跟相同数量的“bc”。这需要无限的记忆。 FA没有无限的记忆。
它可以用无语境语法表达.-
S -> aaSbc | έ Epsilon stands for string of zero length(empty string).
这会产生如下字符串 - 有效字符串 - έ(空字符串),aabc,aaaabcbc等。
详细了解无上下文和常规语法here.
答案 1 :(得分:0)
只要fyi就可以使用非常规语言。
例如,您可以在.NET中使用平衡组,并获得以下内容:
^(?<a>aa)+(bc(?<-a>))+(?(a)(?!))$