2012-04-19 97 views
0

我想構建一個正則表達式來檢測谷歌搜索字符串中的關鍵字。即從谷歌一個字符串搜索詞語「驚人的車」是谷歌關鍵字的正則表達式

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

我用這個正則表達式試圖檢測的關鍵詞汽車:

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

但是,這似乎並沒有正常工作。我錯過了什麼嗎? 非常感謝您的建議

回答

1

只有查詢以「car」開頭,您的表達式纔會匹配。如果您在組中使用「。*」,則貪婪的。+會使URL中稍後的「q =」與「oq =」匹配。

這可能會爲你工作:

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

或者,更安全雖然比較複雜,應用此正則表達式將捕捉到的關鍵字唯一捕獲組:

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

或者,如果你的正則表達式引擎不支持,非捕獲組,使用此:

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

並在第三個讀取關鍵字組。