问个xml的正则表达式

kukumaiwu 2010-03-20 08:56:57
rt

只匹配<!--和-->中间的内容(不包括标签两端的符号)
还有属性名和属性值比如

<!--
comm
-->
<node attr="attr">
value
</node>

匹配
comm
node
attr
value
这几个
具体的节点和属性名称文字任意(非特殊字符(比如<)等符合xml语法标准的字符)
...全文
116 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
-过客- 2010-03-21
  • 打赏
  • 举报
回复
这个比较搞笑
LCL和我用的是一样的,只不过他把普通捕获组替换为命名捕获组了
命名捕获组楼主会用,编号的捕获组就不会用了。。。
kukumaiwu 2010-03-21
  • 打赏
  • 举报
回复
收到
可以用了
多謝ls
十八道胡同 2010-03-21
  • 打赏
  • 举报
回复
(?s)<!--(?<num>.*?)-->
你取num就可以了

MatchCollection mc = reg.Matches(test);
foreach (Match m in mc)
{
richTextBox2.Text += m.Groups["num"].Value + "\n";
}
kukumaiwu 2010-03-20
  • 打赏
  • 举报
回复
谢谢楼上
无序即可
只是一个高亮显示的问题
取出匹配的内容后更换颜色
不过你发的会把<!--等符号也算进去
我现在只需要<!--和-->内部的内容
还有就是节点的内容
谢谢啦
-过客- 2010-03-20
  • 打赏
  • 举报
回复
话说XML的东东为什么要用正则来处理?

还有就是你要取的内容,就是这样无序的取出来就行吗?
先取一个
string test = @"<!--
comm
-->
<node attr=""attr"">
value
</node>
";
Regex reg = new Regex(@"(?s)<!--(.*?)-->");
MatchCollection mc = reg.Matches(test);
foreach (Match m in mc)
{
richTextBox2.Text += m.Groups[1].Value + "\n";
}
qqzeng-ip 2010-03-20
  • 打赏
  • 举报
回复
思归 不在

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧