私はregexを使用してデータを抽出できるパーサを構築しようとしています。私はここで任意の後方参照を使用して、引用符で囲まれた文字列をキャプチャすることができます
と一致することができるようにしたい
は、私が今持っているものです。
(\w+)\s+('|")([^\2\\]*(\\.[^\2\\]*)*)\2\s*;
([^\2\\]*(\\.[^\2\\]*)*)
部分は残念ながら私はこのパターンを持つ2つの問題を抱えているhttp://ad.hominem.org/log/2005/05/quoted_strings.php
から取られました。
まず、一重引用符で囲まれていない文字列をキャプチャしたいと考えています。
print "hello world";
があるが、print foobar;
は機能しません。私は最後に逆参照をオプションで\2
にすることができませんでした。
さらに、私は正規表現を囲んでいるかどうかわかりませんが、このパターンの複数のインスタンスを解析することはできないようです。
print 'hello'; print 'foobar';
で正規表現を試してみると、最初のprint 'hello';
部分が返されます。
ご協力いただきありがとうございます。私は彼らのパラメータを持つすべてのアクションをキャプチャしようとしています
listen 80;
server_name domain.com *.domain.com;
rewrite^ http://www.domain.com$request_uri? permanent;
:
編集ここ
は、私が解析しようとしているものの抜粋です。基本的には、NGINX設定ファイルを解析することはできません。http://wiki.nginx.org/FullExample
あなたは何と一致しますか? – Halcyon
あなたの目標はPHP文字列を解析することですか? –
これは野生の推測ですが、 '( '|") 'から'(' | "|)'に変更することはできませんか? – Halcyon