如何删除双引号内的双引号
本文关键字:何删除 删除 | 更新日期: 2023-09-27 18:04:45
我遇到了一个问题,不知道该怎么办。
问题:我需要删除双引号,在双引号里面
字符串的例子:
"迈克YANICK"、"412大街的"E"、"、"NADIEN PA"、"、"190445468"
如你所见,字母E在"412 A AVE "E"里面有一个额外的双引号。
我需要去掉它。
我的结果应该是:
"迈克YANICK"、"412大街E",","NADIEN PA",","190445468"
- 我不能使用表达式,因为模式每次都改变。
- 字符串。replace将不起作用,因为您需要硬编码 值
- 读取双引号之间的值不起作用,因为它被中间的引号抛出
请帮…
您可以使用这样的正则表达式:
(?<!(^|,))"(?!(,|$))
这将匹配任何双引号("
),它不是由字符串的开头或逗号开始的,并且后面没有逗号或字符串的结尾。
这适用于您的示例:
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"
我要做的是,寻找",
。如果引号不在逗号旁边,则删除引号。
如果只使用replace呢?
例如:
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()));