做项目的时候遇到一个问题,希望大家帮忙看看一个字符串A,里面可能包括有字符串B,现在需要把B都换成字符串C
这个很简单直接用REPLACE替换就好了,
后来客户又提出新需求,要求只替换前3个出现的,这个考虑了半天,用INDEXOF来处理,可以实现
但是感觉程序写的比较复杂了,不知道用正则表达式可以不可以处理这个问题

解决方案 »

  1.   

    string A = "B0B0B0B0B0B0B0B0B";
    string B = "B";
    string C = "C";
               
    Regex r = new Regex("[" + B + "]");if (r.IsMatch(A))
    {
        A = r.Replace(A,C,3,0);
    }
      

  2.   

    swordragon(古道热肠) 正解
    替换在 Regex 构造函数中指定的正则表达式所定义的字符模式的所有匹配项。在每个匹配处均调用 MatchEvaluator 委托以计算替换。受 .NET Framework 精简版的支持。[Visual Basic] Overloads Public Function Replace(String, MatchEvaluator) As String
    [C#] public string Replace(string, MatchEvaluator);
    [C++] public: String* Replace(String*, MatchEvaluator*);
    [JScript] public function Replace(String, MatchEvaluator) : String;
    从输入字符串中的第一个字符开始,用替换字符串替换指定的正则表达式模式的所有匹配项。受 .NET Framework 精简版的支持。[Visual Basic] Overloads Public Function Replace(String, String) As String
    [C#] public string Replace(string, string);
    [C++] public: String* Replace(String*, String*);
    [JScript] public function Replace(String, String) : String;
    从输入字符串中的第一个字符开始,用替换字符串替换由 Regex 构造函数中指定的正则表达式定义的模式的指定数目的匹配项。在每个匹配处均调用 MatchEvaluator 委托以计算替换。受 .NET Framework 精简版的支持。[Visual Basic] Overloads Public Function Replace(String, MatchEvaluator, Integer) As String
    [C#] public string Replace(string, MatchEvaluator, int);
    [C++] public: String* Replace(String*, MatchEvaluator*, int);
    [JScript] public function Replace(String, MatchEvaluator, int) : String;
    从输入字符串中的第一个字符开始,用指定的替换字符串替换由 Regex 构造函数中指定的正则表达式定义的指定数目的模式匹配项。受 .NET Framework 精简版的支持。[Visual Basic] Overloads Public Function Replace(String, String, Integer) As String
    [C#] public string Replace(string, string, int);
    [C++] public: String* Replace(String*, String*, int);
    [JScript] public function Replace(String, String, int) : String;
    从第一个字符开始,用替换字符串替换由正则表达式定义的字符模式的所有匹配项。在每个匹配处均调用 MatchEvaluator 委托以计算替换。受 .NET Framework 精简版的支持。[Visual Basic] Overloads Public Shared Function Replace(String, String, MatchEvaluator) As String
    [C#] public static string Replace(string, string, MatchEvaluator);
    [C++] public: static String* Replace(String*, String*, MatchEvaluator*);
    [JScript] public static function Replace(String, String, MatchEvaluator) : String;
    从输入字符串中的第一个字符开始,用替换字符串替换由正则表达式定义的匹配的所有匹配项。受 .NET Framework 精简版的支持。[Visual Basic] Overloads Public Shared Function Replace(String, String, String) As String
    [C#] public static string Replace(string, string, string);
    [C++] public: static String* Replace(String*, String*, String*);
    [JScript] public static function Replace(String, String, String) : String;
    从输入字符串中的指定字符位置开始,用替换字符串替换 Regex 构造函数中指定的模式的指定数目的匹配项。在每个匹配处均调用 MatchEvaluator 委托以计算替换。受 .NET Framework 精简版的支持。
      

  3.   

    呵呵,谢谢swordragon(古道热肠) 解答,还有 qugui(阿贵) 的说明又学会了一招