0
我剛剛開始使用lex編程。第一項任務是從文件中分離元音和輔音。我寫的元音規則是 - [ aeiouAEIOU ] {return VOWEL};
對於輔音來說,編寫代碼將會非常繁瑣 - [b-dB-D.....]
。有沒有類似{alphabets} - {unwanted chars}
的方法?如何從一組模式中排除不需要的模式?
我剛剛開始使用lex編程。第一項任務是從文件中分離元音和輔音。我寫的元音規則是 - [ aeiouAEIOU ] {return VOWEL};
對於輔音來說,編寫代碼將會非常繁瑣 - [b-dB-D.....]
。有沒有類似{alphabets} - {unwanted chars}
的方法?如何從一組模式中排除不需要的模式?
是的,有(在彎曲,不能在其他法實現):
[[:alpha:]]{-}[aeiouAEIOU]
您也可以使用不區分大小寫的模式:
(?i:[[:alpha:]]{-}[aeiou])
的{-}
運營商只能用文字工作類。它不適用於宏定義或多字符子模式。 (當flex嘗試解析模式時,這些會產生語法錯誤。)
有關更多信息,請參閱flex manual chapter on patterns。