正则表达式匹配查询字符串中的特定数字

时间:2015-08-06 14:16:04

标签: ruby regex

如果查询字符串中的参数包含逗号分隔数组中的特定数字,我试图找出匹配的正则表达式。

为了举例说明,我的查询字符串如下所示:

str1 = "var1=ads12fafff&var2=10,1,5,200&var3=asdfvvv" # should not match
str2 = "var1=adsfsadff&var2=12,15&var3=dasfdsfsadf" # should match
str3 = "var1=dsafasdf&var2=50,12,1,20&var3=asdffae" # should match

...现在我想匹配哪些字符串在 var2 中包含数字 12 - 即 str2 str3

任何人都知道这看起来怎么样?

2 个答案:

答案 0 :(得分:3)

试试这个正则表达式:

var2=(?:\d+,)*12(?:,|&|$)

对每一行使用它,如果匹配,则执行某些操作。

Regex live here.

希望它有所帮助。

答案 1 :(得分:0)

尝试以下方法:

var2=[\d,]*12[,\d]*

Regular expression visualization

Debuggex Demo

匹配......

  • str2 var1=adsfsadff&var2=12,15&var3=dasfdsfsadf
  • str3 var1=dsafasdf&var2=50,12,1,20&var3=asdffae

......并且不匹配:

  • str1 var1=ads12fafff&var2=10,1,5,200&var3=asdfvvv
  • str3变体: var1=50,12,1,20&var2=dsafasdf&var3=asdffae