用正则表达式 提取字符串中的value,求正则高人解答在下两问

时间:2021-02-23 18:50:33
问1:我用正则表达式来取实例名、用户名、密码这种=号之后的value怎么取?value之后可能有分号(;)可能没有(例如字符串末尾没有分号),能够兼容这些特俗情况的正则该怎么写,字符串如下:
Data Source=实例名;Persist Security Info=True;User ID=用户名;Password=密码;Unicode=True

问2:另外想问下另一种正则的表示方式在哪里学,我搜了下不知道关键字怎么搜,其形式如下:
(?is)<a\s*href="(?<href>[^"]*?/(?<ID>\w+)\.(html|htm))"[^>]*?>(?<content>.*?)</a>

4 个解决方案

#1


1.


            string txt = @"Data Source=实例名;Persist Security Info=True;User ID=用户名;Password=密码;Unicode=True";
            var dic = txt.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToDictionary(x => x.Split('=')[0], p => p.Split('=')[1]);
            Console.WriteLine(dic["Password"]);
            Console.Read();


2.http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html

#2


引用 1 楼 nice_fish 的回复:
1.


            string txt = @"Data Source=实例名;Persist Security Info=True;User ID=用户名;Password=密码;Unicode=True";
            var dic = txt.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToDictionary(x => x.Split('=')[0], p => p.Split('=')[1]);
            Console.WriteLine(dic["Password"]);
            Console.Read();

是这样的!

最近有些学生不知道是被哪一个培训学校的老师给轰到csdn上,狂发“正则”帖子。

#3


引用 1 楼 nice_fish 的回复:
1.


            string txt = @"Data Source=实例名;Persist Security Info=True;User ID=用户名;Password=密码;Unicode=True";
            var dic = txt.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToDictionary(x => x.Split('=')[0], p => p.Split('=')[1]);
            Console.WriteLine(dic["Password"]);
            Console.Read();


2.http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html
学习学习

#4


1、

  //如果你是学习正则,这样
            string source = "Data Source=实例名;Persist Security Info=True;User ID=用户名;Password=密码;Unicode=True";
            foreach (Match m in Regex.Matches(source, @"(?is)([\w\s]+)=(\w+)(?=;|$)"))
            {
                Console.WriteLine(m.Groups[1].Value + "\t\t" + m.Groups[2].Value);
            }

2、问2:另外想问下另一种正则的表示方式在哪里学,我搜了下不知道关键字怎么搜,其形式如下:
(?is)<a\s*href="(?<href>[^"]*?/(?<ID>\w+)\.(html|htm))"[^>]*?>(?<content>.*?)</a>
就是匹配超链接
给个学习正则的链接地址 http://bbs.csdn.net/topics/380196757

#1


1.


            string txt = @"Data Source=实例名;Persist Security Info=True;User ID=用户名;Password=密码;Unicode=True";
            var dic = txt.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToDictionary(x => x.Split('=')[0], p => p.Split('=')[1]);
            Console.WriteLine(dic["Password"]);
            Console.Read();


2.http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html

#2


引用 1 楼 nice_fish 的回复:
1.


            string txt = @"Data Source=实例名;Persist Security Info=True;User ID=用户名;Password=密码;Unicode=True";
            var dic = txt.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToDictionary(x => x.Split('=')[0], p => p.Split('=')[1]);
            Console.WriteLine(dic["Password"]);
            Console.Read();

是这样的!

最近有些学生不知道是被哪一个培训学校的老师给轰到csdn上,狂发“正则”帖子。

#3


引用 1 楼 nice_fish 的回复:
1.


            string txt = @"Data Source=实例名;Persist Security Info=True;User ID=用户名;Password=密码;Unicode=True";
            var dic = txt.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToDictionary(x => x.Split('=')[0], p => p.Split('=')[1]);
            Console.WriteLine(dic["Password"]);
            Console.Read();


2.http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html
学习学习

#4


1、

  //如果你是学习正则,这样
            string source = "Data Source=实例名;Persist Security Info=True;User ID=用户名;Password=密码;Unicode=True";
            foreach (Match m in Regex.Matches(source, @"(?is)([\w\s]+)=(\w+)(?=;|$)"))
            {
                Console.WriteLine(m.Groups[1].Value + "\t\t" + m.Groups[2].Value);
            }

2、问2:另外想问下另一种正则的表示方式在哪里学,我搜了下不知道关键字怎么搜,其形式如下:
(?is)<a\s*href="(?<href>[^"]*?/(?<ID>\w+)\.(html|htm))"[^>]*?>(?<content>.*?)</a>
就是匹配超链接
给个学习正则的链接地址 http://bbs.csdn.net/topics/380196757