我有一个字符串如下:
{a{b,c}d}
如果我给 1,字符串必须显示为:
{a d}
内括号内的内容应该连同大括号一起删除。
有人可以帮我吗?
最佳答案
要提取 {} 的内部分组,请使用以下正则表达式:
string extract = Regex.Replace(source, "\{\w(\{\w,\w\})\w\}", "$1");
实际上,如果你想删除逗号....
string extract = Regex.Replace(source, "\{\w\{(\w),(\w)\}\w\}", "{$1 $2}");
提取外部而不进行内部分组:
string extract = Regex.Replace(source, "(\{\w)\{\w,\w\}(\w\})", "$1 $2");
如果在您的示例中 a、b、c、d 不是字面上的单个字符,即字母组甚至空格等,请将 \w 替换为 \w+甚至 .*
根据您对嵌套的评论....
string extract = Regex.Replace(source, "(\{\w)\{.*\}(\w\})\w*", "$1 $2");
关于c# - 使用 C# 删除分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3369885/