日期:2014-05-19  浏览次数:20703 次

求C#中获取字符串中间一段内容的函数
唉,在自己做游戏服务器query页的时候遇到个问题,服务器返回的字符串信息如下:

\AdminName\admin\AdminEMail\xxxx@xxx.com\


用replace来解决呢,就无法控制显示顺序什么的了,所以还是想把字符串分解到多个变量里面。
比如 "\AdminName\admin\ "就分解到string   AdminName= "admin ";

但是这个取值的函数咋写呢??

请教一下高手们!多谢了!

PS:这个admin和xxxx@xxx.com都是会根据实际情况变化的,所以字符串的长度也不固定

------解决方案--------------------
//放到字典里面
using System.Collections.Specialized;


string tmp = @ "\AdminName\admin\AdminEMail\xxxx@xxx.com\ ";
string[] arr = tmp.Split( '\\ ');
StringDictionary sd = new StringDictionary();
for(int i=0;i <arr.Length/2;i+=2)
{
sd.Add(arr[i], arr[i+1])
}

//用sd[ "AdminName "]可以取到 "admin "
//用sd[ "AdminEMail "]可以取到 "xxxx@xxx.com "


------解决方案--------------------
Regex regex = new Regex( @ "\\AdminName\\(? <AdminName> .+?)\\AdminEmail\\(? <AdminEmail> .+?)\\ ", RegexOptions.IgnoreCase )

MatchCollection matches = regex.Matches( str );

foreach ( matches in matches )
{
Console.WriteLine ( "AdminName: {0}, AdminEmail: {1} ", match.Groups[ "AdminName "], ... )
}