C#怎么读取字符串中特定部分
“DataSource=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=128.64.151.18)(PORT=1521))(CONN...
“Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=128.64.151.18)(PORT=1521)) (CONNECT_DATA=(SID=orcl)));User Id=gps_data;Password=gps_data;"
上面是我的字符串,想要读取host后面的ip地址这个128.64.151.18,还有port后面的1521,还有User Id后面的gps_data和Password后面的gps_data,请问要怎么实现啊~
注:没学过正则表达式,如果是正则表达式的答案麻烦请写上注释,谢谢啦~~ 展开
上面是我的字符串,想要读取host后面的ip地址这个128.64.151.18,还有port后面的1521,还有User Id后面的gps_data和Password后面的gps_data,请问要怎么实现啊~
注:没学过正则表达式,如果是正则表达式的答案麻烦请写上注释,谢谢啦~~ 展开
3个回答
展开全部
不需要用正则表达式
String sqlCon="Data Source=......";
String[] strs=sqlCon.Split(';');
//截取并获取User Id
String userId=strs[1].SubString(strs[1].IndexOf("="),strs[1].Length-strs[1].IndexOf("=")-1);
//截取并获取Password
String pwd=strs[2].SubString(strs[2].IndexOf("="),strs[1].Length-strs[2].IndexOf("=")-1);
String[] strs1=strs[0].
//开始的下标
int start=strs[0].IndexOf("HOST=")+("HOST=").Length;
//结束下标
int end=strs[0].IndexOf(")(PORT");
//截取的长度
int length=end-start;
string ip=strs[0].SubString(start,length);
这样应该就可以获得你想要。
String sqlCon="Data Source=......";
String[] strs=sqlCon.Split(';');
//截取并获取User Id
String userId=strs[1].SubString(strs[1].IndexOf("="),strs[1].Length-strs[1].IndexOf("=")-1);
//截取并获取Password
String pwd=strs[2].SubString(strs[2].IndexOf("="),strs[1].Length-strs[2].IndexOf("=")-1);
String[] strs1=strs[0].
//开始的下标
int start=strs[0].IndexOf("HOST=")+("HOST=").Length;
//结束下标
int end=strs[0].IndexOf(")(PORT");
//截取的长度
int length=end-start;
string ip=strs[0].SubString(start,length);
这样应该就可以获得你想要。
展开全部
楼上的方法挺好,不过这种比较固定的连接串可以直接通过找字符的方式实现,非常易懂.
int ip;
int port;
int UserId;
int Password;
int connectdata;
string str = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=128.64.151.18)(PORT=1521)) (CONNECT_DATA=(SID=orcl)));User Id=gps_data;Password=gps_data;";
ip = str.IndexOf("HOST=");
port = str.IndexOf(")(PORT=");
connectdata = str.IndexOf(")) (CONNECT_DATA");
UserId = str.IndexOf("User Id=");
Password = str.IndexOf(";Password=");
textBox1.Text = str.Substring(ip + 5, port-(ip+5));
textBox2.Text = str.Substring(port + 7, connectdata - (port + 7));
textBox3.Text = str.Substring(UserId + 8, Password - (UserId + 8));
textBox4.Text = str.Substring(Password + 10, str.Length - (Password + 11));
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你直接把ip和端口存起来不就行了 还用正则表达式吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询