我有一个字符串“JohnMarkMarkMark”
我想用“Tom”替换“Mark”两种情况
在第一种情况下,我想只替换第一次出现的“Mark”结果将是:“JohnTomMarkMark” 在第二种情况下,我想替换所有出现的“马克”结果将是:“JohnTomTomTom”
请建议 Thnaks
答案 0 :(得分:7)
string data = "JohnMarkMarkMark";
string resultOne = new Regex("Mark").Replace(data, "Tom", 1);
string resultAll = data.Replace("Mark", "Tom");
答案 1 :(得分:1)
答案 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)
试试这个
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");