使用C#删除分隔符

Jey*_*thi 1 c# delimiter c#-3.0

我有一个字符串如下:

{a{b,c}d}
Run Code Online (Sandbox Code Playgroud)

如果我给1,则字符串必须显示为:

{a d} 
Run Code Online (Sandbox Code Playgroud)

内括号内的内容应与大括号一起移除.

任何人都可以帮助我吗?

Adr*_*gan 5

要提取{}的内部分组,请使用以下正则表达式:

string extract = Regex.Replace(source, "\{\w(\{\w,\w\})\w\}", "$1");
Run Code Online (Sandbox Code Playgroud)

实际上,如果你想删除逗号....

string extract = Regex.Replace(source, "\{\w\{(\w),(\w)\}\w\}", "{$1 $2}");
Run Code Online (Sandbox Code Playgroud)

在没有内部分组的情况下提取外部:

string extract = Regex.Replace(source, "(\{\w)\{\w,\w\}(\w\})", "$1 $2");
Run Code Online (Sandbox Code Playgroud)

如果在你的例子中a,b,c,d不是字面上的单个字符,那就是字母组甚至空格等,用\ w +或者甚至替换\ w .*

基于你对嵌套的评论....

string extract = Regex.Replace(source, "(\{\w)\{.*\}(\w\})\w*", "$1 $2");
Run Code Online (Sandbox Code Playgroud)