我的网址有如下所述的搜索字词:
搜索词:新车
URL:
https://www.google.co.in/search?q=new+cars&oq=new+car&aqs=chrome.1.69i57j0l5.340860j0j8&sourceid=chrome&es_sm=122&ie=UTF-8
搜索词:丛林书&字符
URL:
https://in.search.yahoo.com/search;_ylt=A2oKmKEkpE1WqioAkV67HAx.;_ylc=X1MDMjExNDcyMzAwMwRfcgMyBGZyA3lmcC10LTEwMQRncHJpZANWSDhxR0pDUlJZcXNUTG1oM0JkMFBBBG5fcnNsdAMwBG5fc3VnZwM4BG9yaWdpbgNpbi5zZWFyY2gueWFob28uY29tBHBvcwMwBHBxc3RyAwRwcXN0cmwDBHFzdHJsAzI0BHF1ZXJ5A2p1bmdsZSBib29rICYgY2hhcmFjdGVycwR0X3N0bXADMTQ0NzkyODk3Nw--?p=jungle+book+%26+characters&fr2=sb-top-in.search&fr=yfp-t-101&vm=r
有没有办法正则表达式并且只能以通用方式匹配搜索词(不包括特殊字符),以便它能处理所有类型的搜索网址?
答案 0 :(得分:2)
Google:q=([^&]*)
(在q=
之后匹配所有内容
&符号或直到最后)匹配:new+cars
雅虎:p=([^&]*)
(与p=
相同的想法)
匹配:jungle+book+%26+characters
两者:[pq]=([^&]+)
(合并,p或q)
虽然这可能有用,但你最好在PHP中使用parse_url()
或者(因为你的问题用JavaScript标记)看看phpjs.org,相当于JS中的PHP函数。
请参见此工作regex fiddle for yahoo。
答案 1 :(得分:0)
我终于找到了..在这里我们需要查看搜索网址发现的各种模式: 使用非捕获组:
(?:(?:[?|&][p|q]=))([^&]*)
https://regex101.com/r/gG6jR7/2
不使用非捕获组:
[?|&][p|q]=([^&]*)