通常、人々は正規表現を使用して他の何かをASTに解析します。私が探しているのは、正規表現自体をASTに解析するために使用できるツールであり、それをシンボリックに操作できます。私が次のような正規表現を持っているとしましょう
(c(o)w)/(.*?)/omg
のような質問ができるようになりたい
- キャプチャグループはいくつありますか?
- ネストされたグループはありますか?
.
キャプチャグループの開始時に、正規表現の10番目のキャラクターであるキャラクターはいますか?
そして、いくつかの意味のある方法で正規表現を操作できるようになります。例:
- 名前付きグループすべての名前を取得する
- すべての名前付きグループを名前なしグループに置き換えます
- ネストされたグループを最も外側の囲んでいるグループにフラット化します
文字列にシリアル化する前に。
私はあちこち探しましjava.util.regex.Pattern
たが、内部はすべてプライベートなので、それらにアクセスすることはできません。これを行うために使用できるサードパーティのライブラリはありますか?