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

Posted

技术标签:

【中文标题】C#:如何删除两个字符串之间的匹配子字符串?【英文标题】:C#: How to Delete the matching substring between 2 strings? 【发布时间】:2010-12-25 04:18:24 【问题描述】:

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

string1="Hello Dear c'Lint"

string2="亲爱的"

..我想先比较字符串,然后删除匹配的子字符串..以上字符串对的结果是:我>

“你好 c'Lint”

(即“Hello”“c'Lint”之间有两个空格)为简单起见,我们'将假定 string2 将是 string1 的子集 ..(我的意思是 string1 将包含 string2)..

【问题讨论】:

【参考方案1】:

怎么样

string result = string1.Replace(string2,"");

编辑:我看到你更新的问题太晚了 :) 出于好奇,使用 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;
);

【讨论】:

那将是 string1 = string1.Replace(string2,""); :o)【参考方案2】:

只做这个:

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;

希望对您有所帮助。它只会删除第一次出现。

【讨论】:

【参考方案3】:

您可能更愿意尝试

string1 = string1.Replace(string2 + " ","");

否则中间会出现2个空格。

【讨论】:

所以你需要中间的双倍空格? 但是你的回答也很有价值..所以+【参考方案4】:
string1.Replace(string2, "");

请注意,这将删除string1 中出现的所有string2

【讨论】:

哦 .. 很好 .. 那么如何避免这种情况 .. 我的意思是,假设我只想删除第一次出现的 string2 呢?【参考方案5】:

在我的脑海中,删除第一个实例可以像这样完成

var sourceString = "1234412232323";
var removeThis = "23";

var a = sourceString.IndexOf(removeThis);
var b = string.Concat(sourceString.Substring(0, a), sourceString.Substring(a + removeThis.Length));

请在发布前测试 :o)

【讨论】:

【参考方案6】:

Try This One 只有一行代码...

string str1 = tbline.Text;
string str2 = tbsubstr.Text;
if (tbline.Text == "" || tbsubstr.Text == "")

    MessageBox.Show("Please enter a line and also enter sunstring text in textboo");

else

    **string delresult = str1.Replace(str2, "");**
    tbresult.Text = delresult;
**

【讨论】:

以上是关于C#:如何删除两个字符串之间的匹配子字符串?的主要内容,如果未能解决你的问题,请参考以下文章

匹配两个特殊字符之间的子字符串,不包括字符

通过Python中的正则表达式优化在两个列表之间查找匹配子字符串

R中最长的公共子字符串在两个字符串之间找到不连续的匹配

删除两个字符之间的子字符串(java)

如何在一行中的多个位置替换两个字符串之间的子字符串

删除 Hive SQL 查询中两个子字符串之间的所有字符