正则表达式用于替换开始和结束字符之间的文本,但也保留字符

时间:2018-01-10 13:31:35

标签: c# regex

如何使用以“<”开头的c#regex替换文本并以“>”结尾,但保持开始和结束字符和周围匹配{}括号? 应替换文本中出现的所有内容 例如:
This is <my> long <text>应该成为 This is {<my>} long {<text>}

2 个答案:

答案 0 :(得分:2)

托马斯是正确的 - 在这种情况下,您不需要正则表达式。但是,如果你坚持使用一个(或者希望将来扩展这个逻辑来处理一系列字符),这里是:

var inputString = "This is <my> long <text>";
var newInputString = Regex.Replace(inputString, "(<[^>]+>)", "{$1}");

这个正则表达式假设您在有角度的括号中捕获至少一个字符。

答案 1 :(得分:1)

为什么不仅使用replace;

string text = "This is <my> long <text>";
var replacedText = text.Replace("<", "{<").Replace(">", ">}");

如果您有编码文字,可以先解码;

string text = "This is &lt;my&gt; long &lt;text&gt";
var replacedText = WebUtility.HtmlDecode(text).Replace("<", "{<").Replace(">", ">}");