c# 截取字符串 这个怎么截取啊?

qhwahaha 2010-12-23 09:46:00
string host ="server=20100806-1054\SQLEXPRESS;user=test;pwd=testpwd;database=supper";

我要把上面这个字符串里面的

20100806-1054\SQLEXPRESS

test

testpwd

supper

全部分别截取出来 要要怎么截取啊?
...全文
78 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wudliang 2010-12-23
  • 打赏
  • 举报
回复

string host =@"server=20100806-1054\SQLEXPRESS;user=test;pwd=testpwd;database=supper";
string server, database, user, password;
foreach(Match m in Regex.Matches(host, @"(?<name>\w+)=(?<value>[^;]*)(?:;|$)"))
{
switch (m.Groups["name"].Value)
{
case "server" :
server = m.Group["value"].Value;
break;
case "database" :
database = m.Group["value"].Value;
break;
case "user" :
user = m.Group["value"].Value;
break;
case "pwd" :
password = m.Group["value"].Value;
break;
}
}
wudliang 2010-12-23
  • 打赏
  • 举报
回复
用正则表达式:@"(?<name>\w+)=(?<value>[^;]*)(?:;|$)"
然后遍历匹配集就能分别取得你要的了
q107770540 2010-12-23
  • 打赏
  • 举报
回复

void Main()
{
string host =@"server=20100806-1054\SQLEXPRESS;user=test;pwd=testpwd;database=supper";
foreach(Match m in Regex.Matches(host,@"(?i)(?<==)[^;]+(?=;)?"))
{
Console.WriteLine(m.Value);
}
/*
20100806-1054\SQLEXPRESS
test
testpwd
supper

*/
}
tuyi911 2010-12-23
  • 打赏
  • 举报
回复
split
q107770540 2010-12-23
  • 打赏
  • 举报
回复
(?i)(?<==)[^;]+(?=;)?
  • 打赏
  • 举报
回复
还有问这个问题的.....
q107770540 2010-12-23
  • 打赏
  • 举报
回复
(?i)server=(?<server>[^;]+);user=(?<user>[^;]+);pwd=(?<pwd>[^;]+);database=(?<db>[^;]+)

李先生2017 2010-12-23
  • 打赏
  • 举报
回复
string[] s = host.Split(new string[]{"=",";"},StringSplitOptions.RemoveEmptyEntries);
51Crack 2010-12-23
  • 打赏
  • 举报
回复
先split(";"),再split("=")

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧