2012-04-19 8 views
0

Google検索文字列でキーワードを検出するための正規表現を作成しようとしています。googleキーワードの正規表現

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

しかし、これは正しく動作するようには思えません。私はキーワードの車を検出するために、この正規表現を試してみました

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

すなわち、検索用語「素晴らしい車」のためのGoogleからの文字列です。何か不足していますか? アドバイスありがとうございます

答えて

1

"car"で始まるクエリが一致する場合のみ、式が一致します。グループ内で "。*"を使用すると、greedy。+はURLの "oq ="に "q ="を一致させます。

このあなたのために働く可能性があります

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

あるいは、より安全しかし、より複雑な、唯一のキャプチャグループにキーワードをキャプチャします。この正規表現を適用します。

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

それとも、あなたの正規表現であればエンジンは非キャプチャグループをサポートしていません。

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

グループ。