我正在尝试构建一个正则表达式来检测谷歌搜索字符串中的关键字。即来自谷歌的搜索词“惊人的汽车”的字符串是
https://www.google.pl/#hl=pl&output=search&sclient=psy-ab&q=amazing+car&oq=amazing+car&aq=f& ... etc
我尝试使用此正则表达式来检测关键字car:
(google\.).+(&|\?)q=(car)
但这似乎无法正常工作。我错过了什么吗? 非常感谢你的建议
答案 0 :(得分:1)
只有当查询以“car”开头时,您的表达式才会匹配。如果您在组中使用“。*”,则贪婪的。+将使“q =”与URL中的“oq =”匹配。
这可能对您有用:
(google\.).+(&|\?)q=([^&]*car)
或者,更安全但更复杂,应用此正则表达式将捕获唯一捕获组中的关键字:
https?://(?:[^/]+\.)?google\.[^/]+/[^?]*[?#](?:.*&)?q=([^&]*)
或者,如果你的正则表达式引擎不支持非捕获组,请使用:
https?://([^/]+\.)?google\.[^/]+/[^?]*[?#](.*&)?q=([^&]*)
并在第三组中阅读您的关键字。