首页 新闻 赞助 找找看

求一个正则匹配get请求的url,get的参数名称不变,但get的参数位置可以变化

0
悬赏园豆:20 [已解决问题] 解决于 2012-05-13 16:08

求一个正则匹配get请求的url,get的参数名称不变,但get的参数位置可以变化

比如:

/ldmsapp?lettsid=dAFvyYLtOTlAEpjY&mid=1tbiCQQqEESBRsO8GQAHsV%0A9%0A155%0A1&funcid=readpart&part=2

/ldmsapp?funcid=readpart&lettsid=dAFvyYLtOTlAEpjY&mid=1tbiCQQqEESBRsO8GQAHsV%0A9%0A155%0A1&part=3

代码示例的主页 代码示例 | 初学一级 | 园豆:49
提问于:2012-03-12 14:58
< >
分享
最佳答案
1

用这个,就能把那几个都匹配出来。你只需要取组里面的值就可以了,不会受顺序影响了。

(lettsid=(?<lettsid>[^&]*)|mid=(?<mid>[^&]*)|funcid=(?<funcid>[^&]*)|part=(?<part>[^&]*))


怎么取组里面的值,可以参考下面这个示例

string s = "2005-2-21";
Regex reg = new Regex(@"(?<y>\d{4})-(?<m>\d{1,2})-(?<d>\d{1,2})", RegexOptions.Compiled);
Match match = reg.Match(s);
int year = int.Parse(match.Groups["y"].Value);
int month = int.Parse(match.Groups["m"].Value);
int day = int.Parse(match.Groups["d"].Value);
Console.WriteLine(year + "" + month + "" + day + "");
收获园豆:20
LCM | 大侠五级 |园豆:6876 | 2012-03-12 15:05

您这个正则可以匹配所有结果,但如果参数给得不全的话也会匹配,我这边要求get的3个参数必须给全,但顺序是可以变的

代码示例 | 园豆:49 (初学一级) | 2012-03-13 10:07

@代码示例: 详细解释一下你的需求?

我有点看不明白!

那个参数不是4个么?

正则匹配,其实这个就是一个正则验证吧?验证这个url是否有你说的那几个参数是吧?

pmars | 园豆:250 (菜鸟二级) | 2012-03-30 13:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册