C# 删除字符串中特定字符之间的内容

C# 删除字符串中特定字符之间的内容,c#,C#,我有一个字符串值,其内容如下: string samplevalue="1. e40 e51 2. f31 f56 (f16) 3. j40 h51 4. k31 (c18) k56 "; 我想删除“(”和“)”之间的字符,例如,上面的字符串应该是: string samplevalue="1. e40 e51 2. f31 f56 3. j40 h51 4. k31 k56 "; 我怎样才能做到这一点呢?我已经做到了,看一看 string samplevalue = "1. e40 e51

我有一个字符串值,其内容如下:

string samplevalue="1. e40 e51 2. f31 f56 (f16) 3. j40 h51 4. k31 (c18) k56 ";
我想删除“(”和“)”之间的字符,例如,上面的字符串应该是:

string samplevalue="1. e40 e51 2. f31 f56 3. j40 h51 4. k31 k56 ";

我怎样才能做到这一点呢?

我已经做到了,看一看

string samplevalue = "1. e40 e51 2. f31 f56 (f16) 3. j40 h51 4. k31 (c18) k56 ", 
       newstring = string.Empty;
bool isstart = false;
foreach (char c in samplevalue)
{
   if (c == '(')
   {
      isstart = true;
   }

   if (isstart)
   {
      if (c == ')')
      { isstart = false; }
   }
   else { newstring += c.ToString(); }

}

这是我对你问题的看法

string samplevalue = "1. e40 e51 2. f31 f56 (f16) 3. j40 h51 4. k31 (c18) k56 ";
string sampleoutput = samplevalue;
MatchCollection matchList = Regex.Matches(samplevalue, @"\(([^)]*)\)");
var list = matchList.Cast<Match>().Select(match => match.Value).ToList();

foreach (string stringToRemove in list) {
     sampleoutput = sampleoutput.Replace(stringToRemove, "");
}
string samplevalue=“1.e40 e51 2.f31 f56(f16)3.j40 h51 4.k31(c18)k56”;
字符串sampleoutput=samplevalue;
MatchCollection matchList=Regex.Matches(samplevalue,@“\([^)]*)\)”;
var list=matchList.Cast().Select(match=>match.Value.ToList();
foreach(字符串stringToRemove in list){
sampleoutput=sampleoutput.Replace(stringToRemove,“”);
}
输出

1。e40 e51 2。f31 f56 3。j40 h51 4。k31 k56


很小的一点,我的输出在删除文本的地方有一个额外的空间,我不确定你的间距是如何工作的,但是如果你只需要每个空格一个,那么就有办法删除额外的空格。

你的字符串总是这样吗?括号内的值可以包含空格吗?它也可以包含空格例如:(ab12),(ab12),(ab12)嗯,括号内的文本可以重复吗?就像在你的例子中,f16在一个括号内,f16是否可能出现在字符串的其他地方,但不在括号内?你是如何做到这一点的?即来自数据库的数据,用户输入?等我总是发现,如果你必须进行繁重的/手动的字符串操作,那么肯定有更好的方法来实现你的尝试。@crimson589,是的,你是对的,这是可能的