2017-04-16 81 views
0

我剛剛開始使用lex編程。第一項任務是從文件中分離元音和輔音。我寫的元音規則是 - [ aeiouAEIOU ] {return VOWEL};對於輔音來說,編寫代碼將會非常繁瑣 - [b-dB-D.....]。有沒有類似{alphabets} - {unwanted chars}的方法?如何從一組模式中排除不需要的模式?

回答

0

是的,有(在彎曲,不能在其他法實現):

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

您也可以使用不區分大小寫的模式:

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

{-}運營商只能用文字工作類。它不適用於宏定義或多字符子模式。 (當flex嘗試解析模式時,這些會產生語法錯誤。)

有關更多信息,請參閱flex manual chapter on patterns