如何使用正则表达式从URL获取queryparam vid

时间:2017-08-01 05:45:23

标签: regex

帮助我使用正则表达式,我正在尝试从以下url获取视频值。

我尝试过如下,但我不确定:

[\&]{1}vid[\=][\d]*

这是对的吗?

5 个答案:

答案 0 :(得分:1)

使用vid =(\ d +)获取ID数量,请参阅regex

答案 1 :(得分:0)

在这个地方试试你的正则表达式...... https://regex101.com/r/dX3hD4/1

答案 2 :(得分:0)

你写的正则表达式不起作用,因为你在返回值中包含了字符& vid =。要确保正则表达式引擎检查字符串& vid =但未在结果中包含它,您将需要使用lookbehind:

(?<=&vid=)([^&\r\n]+)

我们使用积极的lookbehind来找到&vid=,然后抓住从那一点到下一个&amp;标志或行尾。

对于第二个请求,如果您希望验证vid的内容是否为有效号码,则需要指定&vid=后面的所有字符都应为数字,并且还包含一个正面的前瞻确保数字后面的下一个字符是&amp;标志。然后相应的正则表达式变为:

(?<=&vid=)([^\D]+)(?=&)

答案 3 :(得分:0)

这里的诀窍是匹配两种感兴趣的模式 -

  1. “VID =”
  2. “&安培;”
  3. 你捕获的任何东西都是你所追求的。

    因此使用此:

    "http://gorid.com/api.jsp?acs=123&vid=432&skey=asdasd-asdas-adsasd".match("vid=([^;]*)&")[1]
    

    我们正在访问匹配对象的第二个元素,因为它包含值。

答案 4 :(得分:0)

在JS / PHP类型的环境中,你可以匹配这样的东西,你可以在vid=和下面的&之间找到任何字母数字:

vv = str.match(/vid=(.+?)&/)[1];

HERE

如果值始终为数字,请将(.+?)替换为(\d+?)