正则表达式与数量依赖

时间:2014-02-04 11:25:32

标签: regular-language

是否可以创建描述如下词的正则表达式:

aabc
aaaabcbc
aaaaaabcbcbc

创建单词时,右侧的每次出现(bc)都与左侧的出现(aa)相关联。

以下字词无效:

aa
bc
aaabc
aaaabc
aabcbc 

2 个答案:

答案 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)(?!))$