2013-01-22 15 views
0

我創造了這個正則表達式正則表達式,需要停止在最後regognition

((char) ([a-zA-Z][a-zA-Z0-9_]*)[,]?([=]?[']?[a-zA-Z0-9.]*?['])?([,]|;))|((int|float) ([a-zA-Z][a-zA-Z0-9_]*)[,]?([=]?[a-zA-Z0-9.]*)?([,]|;)) 

它應該承認類型的變量:

int a, int a=1, char b, char b='1'; 

的問題是,當我鍵入

int a=1, 

它被認爲是正確的。有沒有一種方法可以使符號不被最後的識別或其他解決方法所接受?感謝

回答

0

我測試了這一個,而不是:

(([,]?\s*)(((char)\s([a-zA-Z][a-zA-Z0-9_]*)([=]?[']?[a-zA-Z0-9.]*?[']?))|((int|float) ([a-zA-Z][a-zA-Z0-9_]*)([=]?[a-zA-Z0-9.]*)?)))*[;] 

這全高清線預計在年底分號匹配。

如果要在代碼中匹配每個定義,可以在正則表達式定義的正文中使用named-groups。我不知道你正在使用哪種編程語言,所以我無法幫助更多關於命名組。