当前位置: 代码迷 >> ASP.NET >> 正则表达式截取字符串中得图片地址和连接地址(c#)
  详细解决方案

正则表达式截取字符串中得图片地址和连接地址(c#)

热度:8644   发布时间:2013-02-25 00:00:00.0
求一个正则表达式截取字符串中得图片地址和连接地址(c#)
【共同社3月17日电】日本自民党总裁谷垣祯一在17日下午的记者会上表示,鉴于福岛第一核电站事故,今后核电站选址将变得非常困难,核能政策将难<span><a href="/UserDir/Documents/太阳能09台湾.pdf">/UserDir/Documents/太阳能09台湾.pdf</a></span>实施。他同时暗示将修改“增建核电站”的党内方针。  谷垣祯一在记者会上考虑到核能发电已成主要电力来源一事强调,<span><img src="http://localhost:12988/UserDir/Images/0865b5181b7beb3b35fa41a9.jpg" /></span>

实现效果:获得href地址:/UserDir/Documents/太阳能09台湾.pdf 和 图片地址:http://localhost:12988/UserDir/Images/0865b5181b7beb3b35fa41a9.jpg
并且能够将其存入数组



------解决方案--------------------------------------------------------
C# code
            StreamReader reader = new StreamReader("c:\\1.txt",Encoding.Default);            string source = reader.ReadToEnd();            Regex reg = new Regex(@"(?is)((?<=<a href=[^>]*?).*?(?=</a>))|((?<=<img src=[^>]*?).*?(?= />))");            MatchCollection mc = reg.Matches(source);            foreach (Match m in mc)            {                MessageBox.Show(m.Value);            }
------解决方案--------------------------------------------------------
string str = "【共同社3月17日电】日本自民党总裁谷垣祯一在17日下午的记者会上表示,鉴于福岛第一核电站事故,今后核电站选址将变得非常困难,核能政策将难<span><a href=\"/UserDir/Documents/太阳能09台湾.pdf\">/UserDir/Documents/太阳能09台湾.pdf</a></span>实施。他同时暗示将修改“增建核电站”的党内方针。  谷垣祯一在记者会上考虑到核能发电已成主要电力来源一事强调,<span><img src=\"http://localhost:12988/UserDir/Images/0865b5181b7beb3b35fa41a9.jpg\" /></span>";

var match = Regex.Match(str, @"(?<=<a[^>]+href=[""'])([^""']+)(?=[""'])[\s\S]+(?<=<\s?img\s*src=[""'])([^""']+)");
Response.WriteLine(match.Groups[1].Value);// /UserDir/Documents/太阳能09台湾.pdf
Response.WriteLine(match.Groups[2].Value);// http://localhost:12988/UserDir/Images/0865b5181b7beb3b35fa41a9.jpg