0

関連する質問:特定の文字 (?) に続いていないときに、正規表現を使用して文字 (') に一致させるにはどうすればよいですか?

正規表現 (PHP PCRE ライブラリ) を使用してログを解析し、そこから URL を抽出しようとしています。URL は二重引用符 " でカプセル化されていますが、一部の要求には二重引用符 " も含まれています。例えば:

"https://www.amh.net.au/online/dbSearch.php?t=all&q=\"Rosuvastatin\""

私の最初のパターンは基本的に次のとおりです。

#\"([^\"]*)\"#

上記のエントリの1つに到達するまで、これはうまく機能し、一致が切り捨てられたので、得られたのは次のとおりです。

https://www.amh.net.au/online/dbSearch.php?t=all&q=\

掘り下げて、 http: //addedbytes.com で正規表現のチートシートを再発見し、http://www.regular-expressions.info/lookaround.htmlでさらに役立つ情報を再発見した後 、次のルックビハインドを試しました。

#"([(?<!\\)"]*)"#

しかし、今私が得るのは "" と空の文字列だけです

4

2 に答える 2

1

ログ内の URL は URL エンコードされます。そのため、次のパターンが機能するはずです。

#\"([^ ]*)\"#
于 2013-04-04T07:45:07.823 に答える