首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

正则表达式怎么写

2012-01-31 
正则表达式如何写stringtmp server192.168.1.5uidsapwddatabaseyy 如何用正则表达式分别取出连

正则表达式如何写
string   tmp= "server=192.168.1.5;uid=sa;pwd=;database=yy ";

如何用正则表达式分别取出连接字符串中的用户名、密码和服务器,放在三个变量里?

[解决办法]
string uid, pwd, server;
string[] strs = tmp.Split( '; ');
foreach(string s in strs)
{
if(s.IndexOf( "uid ")!=-1) uid = s.Substring(4);
else if(s.IndexOf( "pwd ")!=-1) pwd = s.Substring(4);
else if(s.IndexOf( "server ")!=-1) server = s.Substring(7);
}
[解决办法]
string Reg=“server=([^;]*);uid=([^;]*);pwd=([^;]*);database=([^;]*) ";
[解决办法]
string tmp = "server=192.168.1.5;uid=sa;pwd=;database=yy ";
Match res = Regex.Match(tmp, @ "server=(? <server> .+?);uid=(? <uid> .+?);pwd=(? <pwd> .*);database=(? <database> .+) ");
if (res.Success)
{
MessageBox.Show(res.Groups[ "server "].Value);
MessageBox.Show(res.Groups[ "uid "].Value);
MessageBox.Show(res.Groups[ "pwd "].Value);
MessageBox.Show(res.Groups[ "database "].Value);
}
试试?
[解决办法]
高手,接分
[解决办法]
using System.Text.RegularExpressions;

string tmp = "server=192.168.1.5;uid=sa;pwd=;database=yy ";
Match res = Regex.Match(tmp, @ "server=(? <server> .+?);uid=(? <uid> .+?);pwd=(? <pwd> .*);database=(? <database> .+) ");
if (res.Success)
{
MessageBox.Show(res.Groups[ "server "].Value);
MessageBox.Show(res.Groups[ "uid "].Value);
MessageBox.Show(res.Groups[ "pwd "].Value);
MessageBox.Show(res.Groups[ "database "].Value);

[解决办法]
string sourceString = @ "server=192.168.1.5;uid=sa;pwd=;database=yy ";
string pattern = @ "uid=(? <uid> [^;]*);pwd=(? <pwd> [^;]*);database=(? <database> [^;]*) ";

Match mr = Regex.Match(sourceString, pattern, RegexOptions.IgnoreCase);
string result = string.Empty;
if (mr.Success)
{
result += mr.Groups[ "uid "].Value + "_ " + mr.Groups[ "pwd "].Value + "_ " + mr.Groups[ "database "].Value;
}
this.TextBox1.Text = result;

---------------------------------------------
EMail:bdbox@163.com 请给我一个与您交流的机会!
[解决办法]
如果顺序完全无法确定的时候,可以这样做,但是如果顺序确定,最好还是用确定的写法,因为这样写虽然通用,但是效率不如确定写法的高


string yourStr = ...............;
Match m = Regex.Match(yourStr, @ "^(?=.*?server=(? <server> [^;]*)(?:;|$))(?=.*?uid=(? <uid> [^;]*)(?:;|$))(?=.*?pwd=(? <pwd> [^;]*)(?:;|$))(?=.*?database=(? <database> [^;]*)(?:;|$)).*$ ", RegexOptions.IgnoreCase);
if (m.Success)
{
MessageBox.Show(m.Groups[ "server "].Value);
MessageBox.Show(m.Groups[ "uid "].Value);
MessageBox.Show(m.Groups[ "pwd "].Value);
MessageBox.Show(m.Groups[ "database "].Value);
}
------解决方案--------------------


string tmp = "database=yy;uid=sa;server=192.168.1.5;pwd=; ";
string[] strMatch = new string[] { @ "server=(? <str> [^;]*);? ", @ "uid=(? <str> [^;]*);? ", @ "pwd=(? <str> [^;]*);? ", @ "database=(? <str> [^;]*);? " };
foreach(string str in strMatch)
{
Match res = Regex.Match(tmp, str);
if (res.Success)
{
Response.Write(res.Groups[ "str "].Value + " <br /> ");
}
}

热点排行