私はコードフォーマッタを書いています。私は助けが必要です。私はコードブロックを見つけなければならず、正規表現を使いたいと思う。私は、フォーマットに必要なコードは次のように基本的になります。入れ子になったコードブロックを見つけるためのRegEx
私はで始まるブロックを見つける{で終わる}この式とすることができる午前KEYWORD name {
word
word
...
}
:
[{](.*?)[}]
しかし、私は知りません式に"KEYWORD name"
部分を追加する方法。どちらも、;
,{
および}
以外の文字を含むカスタム文字列です。
もう1つの問題は、自分のコードブロックをネストできることです。私はその機能を追加する方法を知らない。
コードブロックがネストできるかどうかわかりませんが、そうであれば、正規表現は機能しません。 – Jordi
ああ!あなたが正しいです!私はまだそれをテストしなかった。しかし、彼らは入れ子にする必要があります... –
(任意の深さまで)入れ子になるとすぐに、正規表現は使いにくくなります。厳密に言えば、入れ子構造体は規則的ではないため、正規表現とのマッチングには適していません。 現代の正規表現フレーバ(例えば、PCRE、Perl、.NET)は再帰的マッチングを可能にするが、Javaはそれらの間にはない。したがって、おそらく、この仕事のためにパーサーを構築/使用する必要があります。 –