如何从Asp.net VB中的字符串中获取数字?

时间:2014-07-30 09:13:48

标签: asp.net arrays vb.net string

这是我的字符串"search=;pageid=62,67;categoryid=0;orderby=;showon=1"我想分别得到62和67,我该怎么做?

2 个答案:

答案 0 :(得分:0)

最好的方法是使用RegEx。您可以使用此表达式来获得优化结果:

(\d{2})

此RegEx仅查找2位数的所有数字。

答案 1 :(得分:0)

您可以使用String.SplitLookup<TKey, TValue>

var yourString = " search=;pageid=62,67;categoryid=0;orderby=;showon=1";
var lookup = yourString.Trim().Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries)
    .Select(t => t.Split('='))
    .ToLookup(arr => arr[0], arr => arr[1].Split(','));

string[] allPageIDs = lookup["pageid"].FirstOrDefault(); 
// allPageIDs can be null if the string didn't contain pageid
foreach (string id in allPageIDs)
    Console.WriteLine(id); 

查找类似于字典,但如果输入序列多次包含密钥,则不会引发异常,但该值包含所有结果。因此,上面FirstOrDefault会返回第一个结果,即string[],在这种情况下有两个值62,67。