我的字符串值包含以下内容:
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 ";
我怎样才能实现这一目标?
答案 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(); }
}