>我遇到了一个深度嵌套的大括号字符串,如下所示:
{{{text1},{text2}},{{text3},{text4}}}
我只想保留最里面的花括号,并用方形刹车代替另一个大括号,所以结果将如下所示:
[[{text1},{text2}],[{text3},{text4}]]
如何在 C# 中使用 Regex.Replace() 函数进行此替换? 谢谢
这将需要两次替换,首先将每个{
替换为[
,然后是{
,然后将每个}
替换为前面带有非单词边界B
的]
。试试这个 C# 代码,
string input = "{{{text1},{text2}},{{text3},{text4}}}";
Regex regex = new Regex("{(?={)");
string result = regex.Replace(input, "[");
regex = new Regex("\B}");
result = regex.Replace(result, "]");
Console.WriteLine("Result: " + result);
指纹
Result: [[{text1},{text2}],[{text3},{text4}]]
在线 C# 演示
您甚至可以使用正面的(?<=})}
外观而不是\B}
进行第二次替换,但我故意避免使用它以保持解决方案简单,并使其即使对于不支持后视的语言也能工作,但使用(?<=})}
将严格优于\B}
。随心所欲地选择。