我想在以下XML中的每个标记中添加param
。
我想像这样使用C#正则表达式。
<span></span>
原始XML:
Regex.Replace(xml, @"<*>", @"<span>" + @"<*>" + "</span>")
修改后的XML
<div id="Content">
<p>1</p>
<h2>1</h2>
<h2>2</h2>
</div>
答案 0 :(得分:1)
我建议避免在xhtml中使用正则表达式,因为众所周知有更好的工具。您可以使用xml解析器,xquery,xpath等。
但是,如果您仍然必须使用或想要使用正则表达式,那么您必须使用捕获组并使用非贪婪的正则表达式。你可以用这个:
(<.*?>)
<强> working demo 强>
答案 1 :(得分:0)
这是一个如何实现这个或多或少安全的工作示例:
var xml = "<div id=\"Content\">\r\n <p>1</p>\r\n <h2>1</h2>\r\n <h2>2</h2>\r\n</div>";
var result = Regex.Replace(xml, @"<[^>]+?>", @"<span>$&</span>");
使用的正则表达式是<[^>]+?>
,只匹配<
,然后是>
与>
之间的任何内容。
输出:
答案 2 :(得分:-1)
这个怎么样
string input = "<div id=\"Content\">" +
"<p>1</p>" +
"<h2>1</h2>" +
"<h2>2</h2>" +
"</div>";
string pattern = @"(</?\w+>)";
string output = Regex.Replace(input, pattern, "<span>$1</span>");
output = "<span>" + output + "</span>";
&#13;