正規表現は、小文字のEnum定数を検索します

ジェイソン・クローマー:

私は、例えば、下ケースですパース列挙型に正規表現を使用しようとしています:

 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に続きます }

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=232366&siteId=1