2017-04-16 67 views
0

我刚刚开始使用lex编程。第一项任务是从文件中分离元音和辅音。我写的元音规则是 - [ aeiouAEIOU ] {return VOWEL};对于辅音来说,编写代码将会非常繁琐 - [b-dB-D.....]。有没有类似{alphabets} - {unwanted chars}的方法?如何从一组模式中排除不需要的模式?

回答

0

是的,有(在弯曲,不能在其他法实现):

[[:alpha:]]{-}[aeiouAEIOU] 

您也可以使用不区分大小写的模式:

(?i:[[:alpha:]]{-}[aeiou]) 

{-}运营商只能用文字工作类。它不适用于宏定义或多字符子模式。 (当flex尝试解析模式时,这些会产生语法错误。)

有关更多信息,请参阅flex manual chapter on patterns