求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 "], ... )
}