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,是的,你是对的,这是可能的