2008-10-07 50 views
1

我有這個工作定義:FLEX(詞法分析器)正則表達式 - 重用定義

IDENTIFIER [a-zA-Z][a-zA-Z0-9]* 

我不想不斷重複的[A-ZA-Z]和[0-9],所以我做了兩個新的定義

DIGIT [0-9] 
VALID [a-zA-Z] 

我怎麼能改寫的識別規則採用數字和有效定義?

我不知道該怎麼做「老二」的比賽,我在這裏堅持:

IDENTIFIER {VALID}[{VALID}{DIGIT}]* // This syntax is incorrect 

感謝。

編輯:我正在使用的整個測試程序:http://pastebin.com/f5b64183f

回答

3

它看起來像你真的想:

標誌{} VALID({有效} | {DIGIT})*

[{VALID} {DIGIT}]解析爲[[A-Za-z] [0-9]],這不是一個合法的構造。

+0

優秀。你整齊地指出了一點,不像我曾三次嘗試過。所以我刪除了我相當困惑的答案。對不起,沒有upvote,但我用我所有的投票今天:( – 2008-10-07 15:38:01

-1

我認爲這樣做,但我無法測試它。你有樣品數據嗎? (?:[A-ZA-Z])

+(?:[0-9])+

+0

第一個正則表達式正在工作,但我想簡化它。 – Kknd 2008-10-07 15:22:33

相關問題