如何使用c#和正则表达式删除引号(")内的所有逗号

本文关键字:quot 何使用 正则表达式 删除 | 更新日期: 2023-09-27 18:09:52

如何构建一个正则表达式来删除引号(")内的所有逗号使用c#,然后用@代替它们?

:

像这样的初始字符串= (value 1,value 2,"value3,value4,value5",value 6)

期望字符串是这样的= (value 1,value 2,"value3@value4@value5", value 6)

如何使用c#和正则表达式删除引号(")内的所有逗号

可以使用

string input = "(value 1,value 2,'"value3,value4,value5'",value 6)";
var regex = new Regex("'''"(.*?)'''"");
var output = regex.Replace(input, m => m.Value.Replace(',','@'));
string input = "= (value 1,value 2,'"value3,value4,value5'",value 6)";
string pattern = "(?<='".*),(?=.*'")";
string result = Regex.Replace(input, pattern, "@");

下面提到的Regex模式可以识别双引号中的数据,即使是在多个级别Regex pattern: (['"].*['"])

        List<string> input = new List<string>();
        input.Add("= (value 1,value 2,'"value3,value4,value5'",value 6)");
        input.Add("'"(value 1,value 2,'"value 3, value 4'",value 5,value 6)'"");
        var regex = new Regex("(['"].*['"])");
        List<string> output = input.Select(data => regex.Replace(data, m=> m.Value.Replace(',','@'))).ToList();
        foreach(string dat in output)
            Console.WriteLine(dat);