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)
{