有一组这样的字符串 
  string1 = ......<p><em>回复</em> <span class="u-name"> 竭蹶 :</span></p>......  我想截取“竭蹶”这个 请问正则怎么操作 。 字符串前后有若干其他代码 。 不能使用位置截取那种的 。因为前面有多少字符不确定。所以请教一下应该怎么处理。好像只能用正则了。.netC#正则String

解决方案 »

  1.   

     string str = "<p><em>回复</em><span class=\"u-name\">竭蹶 :</span></p>";
            string result = "";
            string flagstr = "<span class=\"u-name\">";
            int beginIndex = str.IndexOf(flagstr);
            if (beginIndex > -1)
            {
                int endIndex = str.IndexOf("</span>", beginIndex);
               result = str.Substring(beginIndex + flagstr.Length, endIndex - beginIndex -flagstr.Length);
            }
            Response.Write(result);
      

  2.   

    (?<=\<span\s*class="u\-name"\>).*(?= :\s*</span>)
      

  3.   

    4楼的代码放到VS上提示各种错误呢 
     MatchCollection mc = Regex.Matches(htmlinfo,@"(?<=\<span\s*class=\"u-name\"\>).*(?= :\s*</span>) ");
      

  4.   


    可否贴下你说的字符串
    <div class="replay-form"> 
                                        <div class="arrow">
                                            <em>◆</em><span>◆</span>
                                        </div>
                                        <div class="reply-wrap">
                                            <p><em>回复</em> <span class="u-name"> 竭蹶 :</span></p>
                                            <div class="reply-input">
                                                <div class="fl"  cid="b42da02a-07e2-4896-9d69-a79156cea385" rid=""><input id="rmput143780668" type="text" value="" /></div>
                                                <a href="#none" class="reply-btn btn-gray">回复</a>
                                                <div class="clr"></div>
                                            </div>
                                        </div>
                                    </div> 
      

  5.   

    (?is)(?<=[\s\S]*?<span\s*class="u-name">\s*).*? (?=:\s*</span>[\s\S]*?) string  htmlinfo= "html源码";
    string result=Regex.Match(htmlinfo,@"(?is)(?<=[\s\S]*?<span\s*class=""u-name"">\s*).*? (?=:\s*</span>[\s\S]*?)").Value;