如何在URL中对搜索词进行正则表达式

时间:2015-11-25 05:44:21

标签: javascript regex

我的网址有如下所述的搜索字词:

搜索词:新车

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

有没有办法正则表达式并且只能以通用方式匹配搜索词(不包括特殊字符),以便它能处理所有类型的搜索网址?

2 个答案:

答案 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]=([^&]*)

https://regex101.com/r/gG6jR7/3