我遇到了问题,无法弄清楚要做什么。
问题:我需要在双引号内删除双引号
字符串示例:
“MIKE YANICK”,“412 A AVE”E“,”“,”NADIEN PA“,”“,”190445468“
如您所见,“412 A AVE”E“中的字母E有一个额外的双引号。
我需要删除它。
以下是我的结果:
“MIKE YANICK”,“412 A AVE E”,“”,“NADIEN PA”,“”,“190445468”
请帮忙......
答案 0 :(得分:3)
你可以使用这样的正则表达式:
(?<!(^|,))"(?!(,|$))
这将匹配任何双引号("
),该引号不是由字符串的开头或逗号开头,并且后面没有逗号或字符串的结尾。
答案 1 :(得分:3)
这适用于您的示例:
Regex.Replace("\"MIKE YANICK\",\"412 A AVE \"E\",\" \",\"NADIEN PA\",\" \",\"190445468\"",
"(?<=\")([^,]*)(?=\")",
m => m.Value.Replace("\"", string.Empty)) ;
输出:
"MIKE YANICK","412 A AVE E"," ","NADIEN PA"," ","190445468"
答案 2 :(得分:0)
我要做的是,寻找",
。如果引号不在逗号旁边,请删除引号。
答案 3 :(得分:0)
如何使用替换?
类似的东西:
string test = "\"MIKE YANICK\",\"412 A AVE \"E\",\" \",\"NADIEN PA\",\" \",\"190445468\"";
string[] fields = test.Split(new char[] {','});
StringBuilder result = new StringBuilder();
bool first = true;
foreach (var field in fields)
{
if(first)
{
first = false;
}
else
{
result.Append(",");
}
result.AppendFormat("\"{0}\"", field.Replace("\"",""));
}
Console.WriteLine (string.Format("Old : {0} New: {1}", test,result.ToString()));