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