私はRegexをPowerShellで使ってパーサを作っています。これまでのところ、私が持っている問題を除いて、これまでのところうまくいきます。グループ番号を取得する
\s*([a-zA-Z_]+)\s*=(?:\s*"(.*)"|([^;#]*))
私は成功を収めて、この正規表現がマッチできるようにしました、これらのシナリオ:
Name= "Value" ;Comment
は=
後に引用符の間にすべてを取ると
残り
Name=Value ;Commentを無視ウィルウィル
=
の後ろのすべてを
;
または
#
の値で
これは素晴らしいですが、私が抱えている問題は、シナリオ1が値[2]にマッチし、シナリオ2が値[3]にマッチすることです。これは最終的な価値のために何が含まれているかをチェックします。私はそれがきれいではないので、必ずしも必要ではありません。そこで、ここに質問があります。Value [2]には、これらの2つの異なるグループの結果がどのように含まれていますか? (全く別の正規表現を使用すると、私はすでにこの1何度か書き換えましたが、問題ではありません)
を([^ "] *?)\ 2 \ s * [;#]'](https:/) /regex101.com/r/R9LcE3/2) – Faibbus
これはこれ以上キャプチャしません 'Name =" Value1; Value2 "' =の後にスペースを取りません。引用符が指定されていない場合: 'Name = been been ' によって見つけられました。 – Blah
私は、交替をキャプチャグループとレモ'^ \ s *(\ w +)\ s * = \ s *("。*? "| [^;#] *)' –