Это займет две замены, сначала замените каждый {
на [
, за которым следует {
, а затем замените каждый }
на ]
, которому предшествует граница без слов \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}
. Выбирай как хочешь.