ここで私はプログラマーがおそらく一日もしなければならなかった何かをしようとしています。Regexp puzzle:encapsulated structures
私は自分のコードにこれらのネストされたマクロをすべて持っています。コメントがまだない場合は#ifが終了する各#endifの隣にコメントします。正規表現は私のためにそれを行うことができますか?今まで*と+はNotepad ++であまりにも貪欲で、私が理論的に怠惰なバージョン*を使用したとしても? +?この
#if A
Code
#if B
Code
#if C
Code
#endif /* C */
Code
#endif /* B */
Code
#endif /* A */
正規表現ではネストされた構造を処理できません。バックトラックの拡張機能を使用しても、それが可能であるかどうかはわかりません。 –
これは[通常の言語](https://en.wikipedia.org/wiki/Regular_language)ではないため、一般的には不可能です。それを証明する1つの方法は、一般的なケースでは、有限数の状態で解析することができないということです。 –
メモ帳++を使用している場合、なぜNotepad ++でタグ付けしませんでしたか? NPPの正規表現フレーバはBoostであり、再帰を処理できます。 –