Reg Expression для получения текста между скобками(), я попытался, но я не получаю RegEx. Для этого примера
Regex.Match(script, @"\((.*?)\)").Value
Пример: -
add(mul(a,add(b,c)),d) + e - sub(f,g)
Output =>
1) mul(a,add(b,c)),d
2) f,g
Reg Expression для получения текста между скобками(), я попытался, но я не получаю RegEx. Для этого примера
Regex.Match(script, @"\((.*?)\)").Value
Пример: -
add(mul(a,add(b,c)),d) + e - sub(f,g)
Output =>
1) mul(a,add(b,c)),d
2) f,g
.NET разрешает рекурсию в регулярных выражениях. См. Определения балансировочной группы
var input = @"add(mul(a,add(b,c)),d) + e - sub(f,g)";
var regex = new Regex(@"
\( # Match (
(
[^()]+ # all chars except ()
| (?<Level>\() # or if ( then Level += 1
| (?<-Level>\)) # or if ) then Level -= 1
)+ # Repeat (to go from inside to outside)
(?(Level)(?!)) # zero-width negative lookahead assertion
\) # Match )",
RegexOptions.IgnorePatternWhitespace);
foreach (Match c in regex.Matches(input))
{
Console.WriteLine(c.Value.Trim('(', ')'));
}