删除字符串中大括号之间的字符

MXM*_*Sam 0 .net regex csv

我有一个像这样构建的 .csv 文件:

\n
ABCDE;12345;null;{myname:Sam;};somecontent\nXYZ;69;null;{other ; value };someothercontent\n
Run Code Online (Sandbox Code Playgroud)\n

csv 的分隔符是分号,但大括号之间的文本中可能会出现不需要的分号。\n不需要的分号可能出现在不同的上下文中,它可能是输入时的拼写错误、一段内联css的一部分,html的一部分,\xe2\x80\xa6

\n

好消息是不需要的分号仅出现在大括号之间的内容中。\n因此 I\xe2\x80\x99m 搜索的解决方案应该类似于执行 \xe2\x80\x9c 的正则表达式,删除所有分号在花括号\xe2\x80\x9d 之间。\n我正在 .NET 中工作

\n

谁能帮我设置这个模式?

\n

Boh*_*ian 5

用空字符串替换所有出现的此正则表达式:

\n
;(?=[^{}]*})\n
Run Code Online (Sandbox Code Playgroud)\n

这与分号匹配,但仅当后跟 0 个或多个非{或}之后的字符时}字符时,这与仅当下一个大括号字符是右大括号 \xe2\x80\x9d 时说 \xe2\x80\x9d 相同

\n

作为代码:

\n
line = Regex.Replace(line, ";(?=[^{}]*})", "");\n
Run Code Online (Sandbox Code Playgroud)\n