0

Google 検索文字列のキーワードを検出する正規表現を作成しようとしています。つまり、Google からの検索語「アメージング カー」の文字列は、

https://www.google.pl/#hl=pl&output=search&sclient=psy-ab&q=amazing+car&oq=amazing+car&aq=f& ... etc

この正規表現を使用して、キーワード car を検出しようとしました。

(google\.).+(&|\?)q=(car)

しかし、これは正しく機能していないようです。何か不足していますか?アドバイスありがとうございました

4

1 に答える 1

1

クエリが「car」で始まる場合にのみ、式が一致します。グループで「.*」を使用すると、貪欲な .+ により、「q=」が URL の後半の「oq=」と一致します。

これはあなたのために働くかもしれません:

(google\.).+(&|\?)q=([^&]*car)

または、より複雑ですが安全ですが、唯一のキャプチャ グループでキーワードをキャプチャする次の正規表現を適用します。

https?://(?:[^/]+\.)?google\.[^/]+/[^?]*[?#](?:.*&)?q=([^&]*)

または、正規表現エンジンが非キャプチャ グループをサポートしていない場合は、次を使用します。

https?://([^/]+\.)?google\.[^/]+/[^?]*[?#](.*&)?q=([^&]*)

3 番目のグループでキーワードを読みます。

于 2012-04-20T09:12:25.613 に答える