如何抓取页面里的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中这种写法是错误的.为什么是错误的啊? 关于找不到DLL或者依赖项的问题 存储过程怎么传字符串参数啊 (XML) “.”(十六进制值 0x00)是无效的字符。 返回值(字符串)颜色改变问题 一个店面经营流水帐管理系统(C#源码提供) 水晶报表执行出错:查询引擎错误 求C# MsChart 中文说明文档 谁给我个实现搜索功能的代码 程序集冲突如何解决? 急盼高手指点迷津!!——————C#中定制Web控件的问题!! 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