5分 |
用正则表达式能取一个的话还不好办?取出来之后,把取出来的内容replace掉,然后再取一个呗,直到取不出为止啊。
|
5分 |
Matches ms= Regex.Matches(“你的字符串”,”你的正则表达式“);
List<string> script=new List<string>(); foreach(Match m in ms) { script.Add( m.Value); } script 这个就有多个了. |
10分 |
在winform中textBox1输入字符串,textBox2输入匹配的结果.
上个按钮调用下列函数. 如果自己想封装一下,把对应控件改成传入传出参即可. pre class=”brush: csharp”> 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”; } } /pre> |
5分 |
把html当成xpath用不好么,要是人家这么写的<script language=”JavaScript” type=”text/javascript” src=”1.js” />,你这个regex不就抓瞎了
|
5分 |
在html中这种写法是错误的. |
10分 |
用正则表达式也是可以的。另外可以使用字符串替换的方法去做。
在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 |
为什么是错误的啊? |