![](/img/trans.png)
[英]Replace all commas outside parentheses AND quotes with REGEX or/and C#
[英]How to remove all commas that are inside quotes (") with C# and regex
如何使用C#构建正则表达式以删除引号(“)内的所有逗号,然后将其替换为@?
范例 :
像这样的初始字符串= (value 1,value 2,"value3,value4,value5",value 6)
期望的字符串,例如= (value 1,value 2,"value3@value4@value5", value 6)
您可以使用
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模式中也可以识别双引号中的数据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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.