如何使用以“<”开头的c#regex替换文本并以“>”结尾,但保持开始和结束字符和周围匹配{}括号?
应替换文本中出现的所有内容
例如:
This is <my> long <text>
应该成为
This is {<my>} long {<text>}
。
答案 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 <my> long <text>";
var replacedText = WebUtility.HtmlDecode(text).Replace("<", "{<").Replace(">", ">}");