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

时间:2018-01-01 07:41:53

标签: 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 ";

我怎样才能实现这一目标?

2 个答案:

答案 0 :(得分:1)

这是我对你的问题的看法。

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, "");
}

输出

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

小东西,我的输出有一个额外的空间,删除文本曾经是,我不知道你的间距如何工作,但如果你只需要1个空格,那里有解决方案,以删除额外的空格。

答案 1 :(得分:0)

我已经这样做了,看看

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(); }

}