字符串搜索&替换

时间:2011-06-22 04:13:24

标签: c# string

我有一个字符串“JohnMarkMarkMark”

我想用“Tom”替换“Mark”两种情况

在第一种情况下,我想只替换第一次出现的“Mark”结果将是:“JohnTomMarkMark”  在第二种情况下,我想替换所有出现的“马克”结果将是:“JohnTomTomTom”

请建议 Thnaks

4 个答案:

答案 0 :(得分:7)

string data = "JohnMarkMarkMark";
string resultOne = new Regex("Mark").Replace(data,  "Tom", 1);
string resultAll = data.Replace("Mark", "Tom");

答案 1 :(得分:1)

对于第一种情况,请使用IndexOfSubstringConcat

对于第二种情况,请使用Replace

答案 2 :(得分:0)

(1)是:

var inString = "TestMarkMarkMark";

var lookFor = "Mark";
var replaceWith = "Tom";
var length = lookFor.Length;
var first = inString.IndexOf(lookFor);
var newString = inString.Substring(0, first) + replaceWith + inString.Substring(first + length);

哪些可以优化,但我已将其扩展,因此很容易理解。

(2)是微不足道的 - 只需做inString.Replace("Mark", "Tom");

答案 3 :(得分:0)

案例1的

试试这个

            string s = "JohnMarkMarkMark";
            Regex x = new Regex("Mark");
            MatchCollection m = x.Matches(s);
            if (m!=null && m.Count > 0)
            {
                s = s.Remove(m[0].Index, m[0].Length);
                s = s.Insert(m[0].Index,"Tom");
            }

对于案例2,请尝试s = s.Replace("Mark","Tom");