Flex / Lex:正则表达式无法编译

时间:2013-02-07 04:30:56

标签: regex lex flex-lexer

我正在尝试编写一个flex程序,该程序对包含a,b和c的所有字符串的文本进行操作。我需要匹配的字符串格式为 abxba ,其中 x不包含ba作为子字符串(例如,abccabba,但不包含abccbaba)。这是我试图用来执行此操作的lex正则表达式,但它不会编译:

^[a]{1}[b]{1}[abc|cab|bca|acb|ac|ca|ab|bc|cb][b]{1}[a]{1}$

我对lex / flex有点新意,所以如果这是非常基本的话我会道歉。谁知道什么是错的?

2 个答案:

答案 0 :(得分:1)

这将有效:^ab(a|c|b+[c])*b+a$

答案 1 :(得分:0)

也请尝试使用^ab[a(b+c)*]*ba$并查看是否有效。