• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

求一正则表达式

luoqing 2005-03-08 04:57:21
<table border="1" width="100%">
<tr>
<td> </td>
<td> </td>
</tr>
</table>
<table border="1" width="100%">
<tr>
<td><INPUT id="abc"></td>
<td> </td>
<td> </td>
</tr>
</table>
我怎样写一个正则表达式,只取这一部份的内容,即<INPUT id="abc">所在的表
<table border="1" width="100%">
<tr>
<td><INPUT id="abc"></td>
<td> </td>
<td> </td>
</tr>
</table>
...全文
131 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
duxinrun 2005-03-08
这么整齐的结构阿,用XML的XPath搜索节点就可以了阿
回复
landlordh 2005-03-08
eg.

<table.*?>\s+<tr>\s+<td>\s*<INPUT\s+id="abc">\s*</td>(\s+.*?)*</tr>\s+</table>
回复
hedonister 2005-03-08
呵呵,想法不错
回复
老鹰40 2005-03-08
learning...
回复
dazhu2 2005-03-08
//正则表达式
string s_reg="<table .*>\\s{0,}(<tr>\\s{0,}<td><INPUT id=\"abc\"></td>(\\s{0,}<td>[\\w\\s<>]*</td>\\s{0,})+</tr>)+\\s{0,}</table>";
MatchCollection my=Regex.Matches(box.Trim(),s_reg,RegexOptions.Multiline®exOptions.IgnoreCase);
for(int i=0;i<my.Count;i++)
{
this.richTextBox2.AppendText(my[i].ToString()+"\r\n");

}
回复
xjpeng 2005-03-08
肯定不行,*不包含换行符
回复
luoqing 2005-03-08
@"^<table[^(table)]*<INPUT id=\"abc\">\w*</table>$"
这个正则表达式不行
回复
web_gus 2005-03-08
up
回复
nontrick 2005-03-08
@"^<table[^(table)]*<INPUT id=\"abc\">\w*</table>$"
回复
zr1982930 2005-03-08
我顶!
回复
xjpeng 2005-03-08
偷懒的做法:可以先将整个字符串按"</table>" Split成数组,然后在每个元素中匹配,这个表达式就简单了,用IndexOf都可以解决了
回复
singleflower 2005-03-08
关注
回复
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2005-03-08 04:57
社区公告

让您成为最强悍的C#开发者