0

私はこの正規表現を作成しました

((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,

それは真実であると認識されています。, 記号が最後の認識またはその他の解決方法で受け入れられない方法はありますか? ありがとう

4

1 に答える 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.]*)?)))*[;]

これは、最後にセミコロンがあると予想される定義行全体と一致します。

コード内の各定義を一致させたい場合は、正規表現定義の本文で名前付きグループを使用できます。使用しているプログラミング言語がわからないため、名前付きグループについてこれ以上お手伝いすることはできません。

于 2013-01-22T22:55:23.513 に答える