【问题标题】:How can I replace "XX,XXX" with "XX XXX"?如何将“XX,XXX”替换为“XX XXX”?
【发布时间】:2019-07-02 13:51:41
【问题描述】:

我需要用“XX XXX”替换像“XX,XXX”这样的字符串。字符串 "XX,XXX" 在另一个字符串中,例如:

"-1299-5,"XXX,XXXX",trft,4,0,10800"

字符串是从文本文件中获取的。我想用“,”分割字符串。但是子字符串中的逗号导致了错误的结果。

X 代表一个字符。我认为正则表达式可以提供帮助,谁能给我正确的正则表达式。

【问题讨论】:

  • 用空格替换逗号, ?
  • "XX,XXX".Replace(',', ' ')
  • 对于简单的替换,您可以使用字符串方法。例如"text,text".Replace(',',' ');
  • 你解决了错误的问题。你不应该盲目地用“,”分割,而是正确解析字符串以检查引号内的逗号。

标签: c# regex


【解决方案1】:

这个表达式,

(.*"[^,]*),([^,]*".*)

替换 $1 $2 可能会起作用。

Demo

示例

using System;
using System.Text.RegularExpressions;

public class Example
{
    public static void Main()
    {
        string pattern = @"(.*""[^,]*),([^,]*"".*)";
        string substitution = @"\1 \2";
        string input = @"-1299-5,""XXX,XXXX"",trft,4,0,10800";
        RegexOptions options = RegexOptions.Multiline;
        
        Regex regex = new Regex(pattern, options);
        string result = regex.Replace(input, substitution);
    }
}

【讨论】:

    【解决方案2】:

    简单地说,使用“替换”来替换字符串中的字符。

     var test = "XXX,XXXX";
     var filtered = test.Replace(',', ' ');  
     Console.WriteLine(filtered); 
    

    输出:

    XXX XXXX 
    

    【讨论】:

      猜你喜欢
      • 2011-12-04
      • 2015-04-06
      • 2022-10-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 2016-12-24
      • 2016-06-07
      • 2020-01-02
      相关资源
      最近更新 更多