簡體   English   中英

如何刪除雙引號內的雙引號

[英]How to remove double quotes inside double quotes

我有一個問題,無法弄清楚該怎么做。

問題:我需要在雙引號內刪除雙引號


字符串示例:

“MIKE YANICK”,“412 A AVE”E“,”“,”NADIEN PA“,”“,”190445468“

如您所見,“412 A AVE”E“中的字母E有一個額外的雙引號。


我需要刪除它。

這是我的結果應該是:

“MIKE YANICK”,“412 A AVE E”,“”,“NADIEN PA”,“”,“190445468”


  • 我不能使用表達式,因為模式每次都會改變。
  • string.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"

我要做的是,查找", 。如果引號不在逗號旁邊,請刪除引號。

如何使用替換呢?

就像是:

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()));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM