如何抓取页面里的script标签包括里面的内容 C#web正则表达式 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 还有,这个正则表达式是我在网上找的有点看不懂,它在</script>标签之前匹配 怎么有2个>这个啊,不是应该只有一个的么? 用正则表达式能取一个的话还不好办?取出来之后,把取出来的内容replace掉,然后再取一个呗,直到取不出为止啊。 Matches ms= Regex.Matches("你的字符串","你的正则表达式");List<string> script=new List<string>();foreach(Match m in ms){ script.Add( m.Value);}script 这个就有多个了. 在winform中textBox1输入字符串,textBox2输入匹配的结果.上个按钮调用下列函数.如果自己想封装一下,把对应控件改成传入传出参即可. public void RegexScript() { textBox2.Text = ""; string patten = "<script.*?>[\\s.]*?</script>"; MatchCollection mc = Regex.Matches(textBox1.Text, patten); for (int i = 0; i < mc.Count; i++) { Match m = mc[i]; textBox2.Text += m.Value + "\r\n"; } } 把html当成xpath用不好么,要是人家这么写的<script language="JavaScript" type="text/javascript" src="1.js" />,你这个regex不就抓瞎了 用正则表达式也是可以的。另外可以使用字符串替换的方法去做。 在html中查找两个字符之间的中间字符串。函数如下:这样的结果可能是多个,使用递归的方法。使用List<String>将所有符合条件的全部保存起来.如果只有一个符合条件的话。则结果为lstResutl[0]就是你想要的结果 public static void GetMidInfoOfStartAndEnd2(String content, String start, string end, List<String> lstResult ) { int s1 = content.IndexOf(start); if(s1 >= 0) { //得到s1以后所有的内容 String content2 = content.Substring(s1); int s2 = content2.IndexOf(end); if(s2 >= 0) { String tmpInfo = content2.Substring(0, s2); lstResult.Add(tmpInfo.Trim()); content2 = content2.Substring(s2); GetMidInfoOfStartAndEnd2(content2, start, end, lstReplaceStr, lstResult); } } }来源:it知识 http://www.itzhishi.com/function/detail/18.html 在html中这种写法是错误的.为什么是错误的啊? NullReferenceException问题 一个即时通信程序的问题,请各位高手指教 该论坛区域里,有人用华为的CMPP API 开发过移动短信客户端没有,因为调用华为的东西太麻烦了。请指教。谢谢! 求帮忙,软件测试 高手进来瞧瞧这是什么问题啊(小弟郁闷) 在visul studio 2005 如何把项目编译dll 用MapX开发GIS的进来看看,有问题.急!!!! 请问:如何用程序控制windows服务 讨论:这两种连接方式,哪种好一些。 怎么编译www.aspxcn.com的下载的代码呀?怎么设置,可肯定有搞过的吧! WPF,这个对齐方式,帮我弄迷糊了 求个用户注册的代码C#
List<string> script=new List<string>();
foreach(Match m in ms)
{
script.Add( m.Value);
}script 这个就有多个了.
上个按钮调用下列函数.如果自己想封装一下,把对应控件改成传入传出参即可.
public void RegexScript()
{
textBox2.Text = "";
string patten = "<script.*?>[\\s.]*?</script>"; MatchCollection mc = Regex.Matches(textBox1.Text, patten);
for (int i = 0; i < mc.Count; i++)
{
Match m = mc[i];
textBox2.Text += m.Value + "\r\n";
}
}
在html中查找两个字符之间的中间字符串。
函数如下:这样的结果可能是多个,使用递归的方法。使用List<String>将所有符合条件的全部保存起来.如果只有一个符合条件的话。则结果为lstResutl[0]就是你想要的结果 public static void GetMidInfoOfStartAndEnd2(String content, String start, string end, List<String> lstResult )
{ int s1 = content.IndexOf(start);
if(s1 >= 0)
{
//得到s1以后所有的内容
String content2 = content.Substring(s1);
int s2 = content2.IndexOf(end);
if(s2 >= 0)
{
String tmpInfo = content2.Substring(0, s2);
lstResult.Add(tmpInfo.Trim()); content2 = content2.Substring(s2);
GetMidInfoOfStartAndEnd2(content2, start, end, lstReplaceStr, lstResult);
}
}
}
来源:it知识 http://www.itzhishi.com/function/detail/18.html