C# c中的正则表达式字符串替换#
我有一根像C# c中的正则表达式字符串替换#,c#,regex,c#-4.0,C#,Regex,C# 4.0,我有一根像 var input = "data1, data2, 1233456, \"\"\" test, data, here \"\"\", 08976, test data" 我想用test替换这个字符串的\“\”\“\”\“\”部分;数据;此处 简单地说,将逗号,“替换为分号;”仅块内的任何字符串 我试图用正则表达式来实现这一点 我尝试使用以下正则表达式-\[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\.+)[\\\\\\\\\\\\\\\\
var input = "data1, data2, 1233456, \"\"\" test, data, here \"\"\", 08976, test data"
我想用test替换这个字符串的\“\”\“\”\“\”
部分;数据;此处
简单地说,将逗号,“
替换为分号;”代码>仅块内的任何字符串
我试图用正则表达式来实现这一点
我尝试使用以下正则表达式-\[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\.+)[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
input= string.Join("\"\"\"",
input.Split(new []{"\"\"\""}, StringSplitOptions.None)
.Select( (s,i) => i % 2 == 1 ? s.Replace (',', ';') : s)
);
我认为不可能对这个字符串使用正则表达式:
data11233456,“测试,数据,这里”,08976,测试,“第二,数据”,aso
有可能:
data1233456,,08976,test,,aso
但不是“xxx”
模式:\“{3}.*\“{3}
与此模式字符串匹配的foreach正则表达式。替换(“,”,“;”)
但我想让regex。。。
我放弃了:/谢谢盖伊的帮助
你的回答很有用
最后,在
以下代码可能满足要求
变量输出=Regex.Replace(输入,
“(?继续,在你的问题中添加失败的代码尝试。这不会让问题变得更清楚,但可能会让人们指出你可能存在的一个小误解……而且这也会让人们更有可能回答这个问题(奇怪,但却是真的)。”正如@Beska所说的……如果人们知道你已经尝试过,他们会更愿意提供帮助。发布你的代码表明,请检查我的答案,我可能不认为可以用正则表达式对以下字符串执行此操作:data11233456,“”“test,data,here”“,08976,test,”“second,data”“”,aso
您能否确认输入是data1,data2,1233456,““测试,数据,此处”“,08976,测试数据(不带转义字符)?当您在正则表达式上运行时。替换时,您应获得…data1,data2,1233456,”“测试;数据;此处”“,08976,测试数据(不带转义)。请让我知道这是否是您正在寻找的。您可以在此处进行测试:但即使您解决了此问题,在“”之后和开始下一个“”之前的数据也是正确的
//My input string
var input = Regex.Replace(input , "[\\\"](.+)[\\\"]", ReplaceMethod);
//Method used to replace
public static string ReplaceMethod(Match m)
{
string newValue = m.Value;
return newValue.Replace("\"", "").Replace(",", ";");
}