Google关键字的正则表达式

时间:2012-04-19 11:14:24

标签: expression

我正在尝试构建一个正则表达式来检测谷歌搜索字符串中的关键字。即来自谷歌的搜索词“惊人的汽车”的字符串是

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

我尝试使用此正则表达式来检测关键字car:

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

但这似乎无法正常工作。我错过了什么吗? 非常感谢你的建议

1 个答案:

答案 0 :(得分:1)

只有当查询以“car”开头时,您的表达式才会匹配。如果您在组中使用“。*”,则贪婪的。+将使“q =”与URL中的“oq =”匹配。

这可能对您有用:

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

或者,更安全但更复杂,应用此正则表达式将捕获唯一捕获组中的关键字:

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

或者,如果你的正则表达式引擎不支持非捕获组,请使用:

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

并在第三组中阅读您的关键字。