2014-11-26 3 views
0

У меня есть целевую строку, как это: (однако вложенности может быть очень глубоко на практике)Как фиксировать вложенные группы?

{hi {how {are {you}}}}

Желаемый результат был бы:

Группы: hihowareyou

I не может найти что-либо в C# regex, чтобы сделать вложенное захват таким образом. Это вообще возможно?

EDIT:

Я думаю, что упростили мой пример слишком много затемняет ответы. мне нужно, чтобы захватить в рекурсивном виде пути, потому что мне нужно содержимое внутри скобок: {test[{test2[content]}]}

, где желаемый результат будет:

{test2[content]} и content

+0

что вы ожидаете? Простая строка в результате? –

+0

'[^ {} \ s] +' или '[az] +' –

+0

Вход будет иметь только {и}? –

ответ

0
{([^{}]+) 

Попробуйте это. См. Demo.grab захватов.

http://regex101.com/r/oE6jJ1/35

+0

Извините, я просил общий способ захвата вложенным образом. На этом примере ваше решение работает, но это не приведет к какой-либо нетривиальной рекурсивной проблеме захвата. – Blub

0

я мог думать об этом:

string balh = "{hi {how {are {you}}}}"; 
string[] foo = balh.Split(new char[] { '{', '}' }, StringSplitOptions.RemoveEmptyEntries); 
string output = string.Join(" ", foo); 

Группы будут находиться в foo массиве.

EDIT:

Я думаю, что вы ищете более сложные входы. У меня вопрос неправильный :(

Смежные вопросы