正则表达式将URL与特定查询字符串参数匹配

时间:2016-05-14 13:44:01

标签: regex

我正在使用此正则表达式.*\?(a\=([0-9]{3,4}))来匹配任何带有查询字符串的网址?a = {{此处为随机数}}。它应该只匹配3或4位数的查询字符串

E.g。

http://www.test.com/test/test-test-test/?a=12
http://www.test.com/test-test/news/?a=734
http://www.test.com/test/?a=0987
http://www.test.com/test/test-test-test/?a=90235

我的正则表达式应匹配第二个和第三个链接,因为它们包含3或4位数的查询字符串。

我正在使用此工具http://www.regexpal.com/,到目前为止,它只突出显示第二个链接。

2 个答案:

答案 0 :(得分:1)

试试这个正则表达式:

.+\/\?a=([0-9]{3,4})$
  • /.+\/\?a=([0-9]{3,4})$/gm
  • .+匹配任何字符(换行符除外)
  • Quantifier: +在一次和无限次之间,尽可能多次,根据需要回馈[贪婪]
  • \/匹配字符/字面
  • \?匹配角色?字面上
  • a=匹配字符a =字面(区分大小写)
  • 第一个捕获小组([0-9]{3,4})
  • [0-9]{3,4}匹配下面列表中的单个字符 量词:{3,4} 3到4次,尽可能多次,根据需要回馈[贪心]
  • 0-9 0到9之间范围内的单个字符
  • $在行尾声明位置

在此处查看:https://regex101.com/r/sP0lR3/1

作为视觉表现:

Regular expression visualization

Debuggex Demo

答案 1 :(得分:1)