ジェイソン・クローマー:
私は、例えば、下ケースですパース列挙型に正規表現を使用しようとしています:
enum TransparencyState {
Gone, Translucent, Opaque
}
若しくは
enum TransparencyState {
gone,
translucent,
opaque
}
しかし、私が得ることができる最も近いです(?:enum\s+[a-zA-Z0-9]+\s*\{|\G)\s+([a-zA-Z0-9_,\s]*)(?=[^{}]*\})
が、それは正確に動作しません。理想的には、それだけで、列挙型のリストで小文字定数にマッチする(本質的に以下のような一定の形式で)すべて大文字以外のもの。
それは一致しません。
enum TransparencyState {
GONE, TRANSLUCENT, OPAQUE_OR_DULL
}
任意の助けいただければ幸いです。
Potatoツ :
この正規表現を試してみてください。
^enum[^{]*{\s*(?!\b[A-Z]+\b)(\w+(?:\s*,\s*(?!\b[A-Z]+\b)\w+)*)\s*}
JAVAで、それぞれをエスケープ\
別で\
説明:
^
- ラインの開始を主張しますenum[^{]*{\s*
-試合はenum
ない任意の文字の0+出現が続く{
続く{
できるだけ多く、0+空白が続きます(?!\b[A-Z]+\b)
- 次の単語(列挙値)がONLYキャピタル・文字が含まれていないことを確認して否定先読み\w+
- 単語の文字の一致1+発生(上記負の先読み条件が真である場合のみ)(?:\s*,\s*(?!\b[A-Z]+\b)\w+)*
- 試合0+他、このような列挙値\s*}
- 試合0+空白はAに続きます}