当前位置: 代码迷 >> C# >> 怎么用正则表达式截取以下内容
  详细解决方案

怎么用正则表达式截取以下内容

热度:87   发布时间:2016-05-05 04:27:59.0
如何用正则表达式截取以下内容?
本帖最后由 headsonlkc 于 2015-03-24 08:05:48 编辑
<td><a href=\"?PID=1575\">Apple=88.5</a></td>
红色内容是想获取出来的,绿色是变动的
string str ="<td><a href=\"?PID=1575\">Apple=88.5</a></td>";
string str1 = "<td><a href=\"?PID=1575\">.*?</a></td>";
        MatchCollection mc = Regex.Matches(str, str1, RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.Singleline);

        foreach (Match m in mc)
        {
            _str[count] = m.Groups[0].Value.ToString();

        }
我应该如何处理!
谢谢先!

------解决思路----------------------
string str ="<td><a href=\"?PID=1575\">Apple=88.5</a></td>";
 string str1 = "<td><a href=\"?PID=\d+\">(.+?)</a></td>";
         MatchCollection mc = Regex.Matches(str, str1, RegexOptions.IgnoreCase );

         foreach (Match m in mc)
         {
             _str[count] = m.Groups[1].Value.ToString();

         }
------解决思路----------------------
先匹配
<a\b.*?>.*?</a>

在匹配结果中再匹配
(?<=>).*?(?=<)

想直接写
(?<=<a\b.*?>).*?(?=</a>)
报错……
------解决思路----------------------
这样就好了\\d+
------解决思路----------------------
一定要找到问题的根源,然后在操作,单独的?在正则中是有特殊含义的,必须要转义
<td><a href=\"\\?PID=\\d+\">(.+?)</a></td>
string str1 = "<td><a href=\"\\?PID=\\d+\">(.+?)</a></td>";