正規表現を使用して、括弧の開始記号と終了記号のペアをチェックするチェッカーを作成できることを知っています。
例えば。a.[b.[c.d]].e
利回り値a
、[b.[c.d]]
、およびe
同じ記号である開始ブラケットと終了ブラケットを把握できる正規表現を作成するにはどうすればよいですか
例えば。a.|b.|c.d||.e
値a
、|b.|c.d||
、およびe
アップデート
すべてのコメントをありがとう。私は質問にいくつかの文脈を与える必要があります。基本的にJavaScriptの構文を模倣したい
a.hello is a["hello"] or a.hello
a.|hello| is a[hello]
a.|b.c.|d.e||.f.|g| is a[b.c[d.e]].f[g]
したがって、私がやりたいことは、シンボルを次のように分割することです。
[`a`, `|b.c.|d.e||`, `f`, `|g|`]
それらがパイプ引用符で囲まれている場合は、それらを繰り返します
ここにパイプなしの構文の実装があります:
https://github.com/zcaudate/purnam
方法がわからず、必要な複雑さを正当化するとは思わないため、主にパーサーを使用しないことを本当に望んでいます。しかし、正規表現がそれをカットできない場合は、カットする必要があるかもしれません.