<table id="3001">
</table>匹配table标签
条件一 : 标签是Table并且id以300开头的id=3001
id=3002
id=3003
一直到30010总共10个
符合条件的id抓去下来
<table id="3001">
<table>
</table>不管table 里面有什么东西不管,只要<table></table>结束就行。
table
</table>匹配table标签
条件一 : 标签是Table并且id以300开头的id=3001
id=3002
id=3003
一直到30010总共10个
符合条件的id抓去下来
<table id="3001">
<table>
</table>不管table 里面有什么东西不管,只要<table></table>结束就行。
table
解决方案 »
- winform richtextbox 换行符问题
- C#(或者是C++)如何实现MP3剪切啊?(给个思路也行)
- 关于datalist控件的使用问题
- 多线程,如何让每个线程执行不同的方法
- 帮忙使用正则取区间字符...
- vs2005的bug?
- 什么时候要使用(int)就可以转换类型,什么时候要用函数Convert.ToInt32()?
- 手动清除对象?
- 如何实现两个数据库之间的差异备份?
- 请问各位朋友,哪里有Visual Studio.net 整套软件可以下载,www.microsoft.com中没有发现,单独C#也可以
- C#的事件驱动机制是什么,如何重写事件委托?
- C# 并口(LPT) 获取开关量 怎么获取?在线等
<table\s*?id="(300[1-9])"3001-3010
<table\s*?id="(30[01][1-9])"
3001-30010
<table\s*?id="(300[0-9]|30010)"3001-3010
<table\s*?id="(300[0-9]|3010)"
感谢大师的回复但是有个问题,如果table 标签里嵌套了还有符合条件的table 标签这种写法不妥吧是错误的比如:string pagedata = @"<table id='123'><table id='3001'></table><table id='3002'><table id='3003'><br/><table id='300123'></table></table></table>"; 这段字符。。
感谢大师的回复但是有个问题,如果table 标签里嵌套了还有符合条件的table 标签这种写法不妥吧是错误的比如:string pagedata = @"<table id='123'><table id='3001'></table><table id='3002'><table id='3003'><br/><table id='300123'></table></table></table>"; 这段字符。。
(?isx)<table[^>]*id="300([1-9]|10)">(?><table[^>]*>(?<Open>)|</table>(?<-Open>)|(?:(?!</?table\b).)*)*</table>
//最好还是用 平衡组 防止在嵌套的情况下获取的不正确。
string pattern = @"(?is)((?<g><table[^>]*?id=[""'](?<id>300([1-9]|10))[""'][^>]*>)|(?<-g></table>)|.)*(?(g)(?!))";
var list = Regex.Match(str, pattern).Groups["id"].Captures.OfType<Capture>().Select(t => t.Value).ToList();