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

C#截取一段字符串的问题。
本帖最后由 whj_hbxf 于 2013-07-11 13:53:45 编辑
HTML代码中有这样一个控件:<input type="hidden" name="struts.token.name" value="xxxxxxxxxxx"/>.我要做的是截取value的值:XXXXXXXXXXXXX.

现在new一个WebBrowser,把HTML写入到HtmlDocument中再GetAttribute("Value")能正确取值,虽然也就几行代码的事,但是总感觉这样做对程序来说拐弯大了一点。于是又直接用string.Substring来做,结果总取错位置,是不是我没有处理双字节的缘故?另外我还不会用正则。

  请教大家怎样做对程序来说效率高一点?麻烦给点代码最好,谢谢!

------解决方案--------------------
(?<=value=")[^"]*(?=")

------解决方案--------------------
如果前面的都是固定的话,用string.replace将除了“xxx”之外的部分替换成空就ok了
------解决方案--------------------
HtmlDocument来操作应该是最快的.
------解决方案--------------------
string str="<input type=\"hidden\" name=\"struts.token.name\" value=\"123456\"/>";
        string result = "";
        string flagstr = "name=\"struts.token.name\" value=\"";
        int beginIndex = str.IndexOf(flagstr);
        if (beginIndex > -1)
        {  
           int endIndex=str.IndexOf("\"/>",beginIndex);
           result = str.Substring(beginIndex + flagstr.Length, endIndex - beginIndex -flagstr.Length);
        }
        

这是字符串截取的方法
建议使用正则
------解决方案--------------------
string.Substring 按照C#来说 Substring截的是字符而不是字节,这和c++是不同的
public string value = "";
        string value2 = "value=\"";
        private void button1_Click(object sender, EventArgs e)
        {