日期:2014-05-17  浏览次数:20896 次

用正则表达式获取字符串
原代码如下
...
<span class="abc">产品名称</span>华为最新3G手机
<span class="abc">产品类别</span>手机类
...


我想获得 "华为最新3G手机" 也就是<span class="abc">产品名称</span>和<span class="abc">产品类别</span>之间的内容,如下所述:
<span class="abc">产品名称</span>想获取的内容<span class="abc">产品类别</span>

怎么实现呢,谢谢大侠们!!!!!!!

------解决方案--------------------
(?<=<span\sclass="abc">产品名称</span>)[^<]*(?=<span\sclass="abc">产品类别</span>)
------解决方案--------------------

------解决方案--------------------
(?is)(?<=</span>)[\s\S]*?(?=\s*<span[^>]*?>
------解决方案--------------------
$)
------解决方案--------------------

            System.IO.StreamReader reader = new System.IO.StreamReader("e:\\1.txt",Encoding.Default);
            string str = reader.ReadToEnd();
            string strmatch = @"<span class=""abc"">产品名称</span>([\S\s]+)<span class=""abc"">产品类别</span>";
            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(strmatch);
            System.Text.RegularExpressions.Match m = reg.Match(str);

取m.Groups[1].Value
------解决方案--------------------

(?is)(?<=</span>)[^<]+


------解决方案--------------------
用 Substring 好像也可以吧。 
截取最后一个 “>”然后到字符串的结尾。
------解决方案--------------------