在lex中拒绝重复的字符

时间:2013-01-26 18:52:28

标签: regex character lex flex-lexer

我需要为flex程序编写一个正则表达式,它找到重复的字符并拒绝它们,例如它批准ABD而不是ABDA或AABD,因为表达式中重复了“A”。这让我头疼了一个星期,感谢你的时间。

2 个答案:

答案 0 :(得分:1)

如果不区分大小写:

.*(A.*A|B.*B|C.*C|D.*D|E.*E|F.*F|G.*G|H.*H|I.*I|J.*J|L.*L|M.*M|N.*N|O.*O|P.*P|Q.*Q|R.*R|S.*S|T.*T|U.*U|V.*V|X.*X|Y.*Y|W.*W|Z.*Z).*

答案 1 :(得分:-1)

匹配任何字符,后跟与括号中相同的匹配:/(.)\1/

修改:这只会匹配连续的字母。使用/(.).*\1/进行所有匹配。