2
我在使用flex設置正則表達式來匹配類C文字字符時遇到了一些麻煩。Flex正則表達式字符字符
我需要根據語法和不正確的字符匹配正確的文字字符,例如沒有終止的字符文字。
2個規則,一個是正確的,另一個是未終止的。
chrlit (\')([^\\\'\n]|(\\.))(\')
untermchrlit (\')([\\|\']|(.))*
我需要用正則表達式的幫助,因爲他們沒有工作,我需要他們。下面是一些例子他們如何應該工作:
' -> unterminated char constant
'/' -> CHRLIT('/')
'(' -> CHRLIT('(')
'a"b"c"de -> unterminated char constant
'abc -> unterminated char constant
'abc\ -> unterminated char constant
'\\' -> CHRLIT('\\')
';' -> CHRLIT(';')
'' -> unterminated char constant
'a' -> CHRLIT('a')
'\' -> unterminated char constant
'\;' -> CHRLIT('\;')
'\\\' -> unterminated char constant
'\\\ -> unterminated char constant
'\/' -> CHRLIT('\/')
'a\' -> unterminated char constant
'\\ -> unterminated char constant
'\t' -> CHRLIT('\t')
@MikeM它是一個字符,所以只有一個字符。我有另一個規則來匹配多個字符常量,所以他們給出了一個錯誤,但那一個我認爲這是不相關的問題;) – andrepcg 2013-03-21 15:38:38
@MikeM我的untermchrlit在'\','a \','''和其他一些失敗案例。它給我奇怪的結果.. – andrepcg 2013-03-21 17:03:54
@MikeM該怎麼做? – andrepcg 2013-03-21 17:26:20