C#:如何删除2个字符串之间的匹配子字符串?

Inf*_*nd' 7 c# string string-matching

如果我有两个字符串..说

string1 ="Hello亲爱的c'Lint"

字符串2 ="亲爱的"

..我想先比较字符串删除匹配的子字符串..
上述字符串对的结果是:

"你好c'Lint"

(即, "Hello" "c'Lint" 之间有两个空格)

为简单起见,我们假设string2将是string1的子集..(我的意思是string1将包含string2).

Pao*_*sco 13

关于什么

string result = string1.Replace(string2,"");
Run Code Online (Sandbox Code Playgroud)

编辑:我看到你的更新问题太晚了:)
一个替代解决方案,只使用Regex.Replace替换第一次出现,只是为了好奇:

string s1 = "Hello dear Alice and dear Bob.";
string s2 = "dear";
bool first = true;
string s3 = Regex.Replace(s1, s2, (m) => {
    if (first) {
        first = false;
        return "";
    }
    return s2;
});
Run Code Online (Sandbox Code Playgroud)

  • 这将是string1 = string1.Replace(string2,""); :O) (4认同)

Sum*_*eet 9

这样做:

string string1 = textBox1.Text;
string string2 = textBox2.Text;

string string1_part1=string1.Substring(0, string1.IndexOf(string2));
string string1_part2=string1.Substring(
    string1.IndexOf(string2)+string2.Length, string1.Length - (string1.IndexOf(string2)+string2.Length));

string1 = string1_part1 + string1_part2;
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.它只会删除第一次出现.


Adr*_*der 6

你可能宁愿尝试

string1 = string1.Replace(string2 + " ","");
Run Code Online (Sandbox Code Playgroud)

否则你最终会在中间有2个空格.


Kon*_*man 5

string1.Replace(string2, "");
Run Code Online (Sandbox Code Playgroud)

请注意,这将删除所有的出现次数string2之内string1.