c#中如何删除字符串中的子串 c#中如何删除字符串中的子串例如:“a:b:(k:j;k)jile"如何删除(k:j;k),它是可变的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 string src="a:b:(k:j;k)jile";string del="(k:j;k)";src.Replace(del,""); string del="(k:j;k)"; del内容不是固定的 在替换的时候应该是知道的啊,符值就行~string src="a:b:(k:j;k)jile"; string del="(k:j;k)"; src.Replace(del," ");好象要加空格然后再trim() try...string test = "a:b:(k:j;k)jile" ;string result = System.Text.RegularExpressions.Regex.Replace(test, @"\([^()]*\)", ""); 直接src.Replace(del,"");就可以,不用空格,我用过这种方式。 如果前面,中间,都是固定的话,可以判断长度,然后substring... string oldStr="a:b:(k:j;k)jile";//按"("拆分string []Strs=oldStr.Split(new String[]{"("},StringSplitOptions.None);//获得 a:b:string newStr=Strs[0];//按")"拆分string []Strs2=Strs.Split(new String[]{")"},StringSplitOptions.None);//获得 jile 并连接两次结果 获得两边字符串 从而达到替换效果newStr+=Strs2[2]; 路过. 就楼主 说的.括号中,是可变的字符串 xxx:(J;K;L);(;):xxx个人觉得 11楼的好 string src = "a:b:(k:j;k)jile";string src = "a:b:(k:j;k)jile";try{ int lIndex = src.IndexOf('('); int rIndex = src.IndexOf(')'); string sub = src.Substring(lIndex, (rIndex - lIndex + 1)); src = src.Replace(sub, string.Empty);}catch{ //todo...} 11楼的有错误哈 string oldStr = "a:b:(k:j;k)jile"; //按"("拆分 string[] Strs = oldStr.Split(new String[] { "(" }, StringSplitOptions.None); //获得 a:b: string newStr = Strs[0]; Console.WriteLine(Strs[1]); //按")"拆分 string[] Strs2 = Strs[1].Split(new String[] { ")" }, StringSplitOptions.None); //获得 jile 并连接两次结果 获得两边字符串 从而达到替换效果 //Console.WriteLine(Strs2[1]); newStr += Strs2[1];这样才是正确的。 这个方法正解,简单明了, 楼上的看清楚LZ问的是可变子串 所以直接用src.Replace(del,"");不行 //上次没编译 写的急了点 抱歉啊string oldStr="a:b:(k:j;k)jile";//按"("拆分string []Strs=oldStr.Split(new String[]{"("},StringSplitOptions.None);//获得 a:b:string newStr=Strs[0];//按")"拆分string []Strs2=Strs[1].Split(new String[]{")"},StringSplitOptions.None);//获得 jile 并连接两次结果 获得两边字符串 从而达到替换效果newStr+=Strs2[1]; public static void Main(string[] args) { string text="a:b:(k:j;k)jile" string pattern= @"\([^()]*\)";//匹配截取字符串的模式 MatchCollection mc=Regex.Matches(text,pattern);//满足pattern的匹配集合 Console.WriteLine("文本中包含的指定字符串有:"); foreach(Match match in mc) { Console.WriteLine(match.ToString()); } Console.Read(); } string str = "a:b:(k:sdfsdfj;kddsfsdfasdf)jile"; string result = System.Text.RegularExpressions.Regex.Replace(str, @"\(.*\)", ""); Console.WriteLine(result); 你知道要换的内容,把要替换的内容赋值给 del 就可以了。如果你不知道要替换的内容,那么你至少应该知道要替换掉的内容的 src 中的具体位置,那么就采用下面的方法,取得位置,拆分再组合。 不论是replace还是拼接字符串,原理应该是一样的。 这个简单的问题.2楼高效率解决了!这个年代民风不好!string src=String.Format("a:b:{0}jile",变量A); string del = 变量A;src.Replace(del,""); string src=String.Format("a:b:{0}jile",变量A); string del = 变量A;src.Replace(del,"");这个好 看了1楼的回答,又看了2楼楼主的追问,真想直接告诉楼主“你直接 Del ××× 完了”楼主自己要好好学习!!! [C# CODE]string src="a:b:(k:j;k)jile"; string del=src.subString(indexOf('('),lastIndexOf(')'));src.Replace(del,"");[/CODE]要先用subString把不定的字符串求出来。 string test = "a:b:(k:j;k)jile"; int x = test.LastIndexOf("("); int y=test.LastIndexOf(")"); string str = test.Replace(test.Substring(x, y-x+1), ""); Console.WriteLine(str); 怎样隐藏lable控件能让它不占位置 Gridview 的刷新问题~~菜鸟问题 接口,委托,泛型如何学习 一个事务问题!! 关于combobox联动问题 请问: sapi中怎么为什么总是得不到中文发音(急) 已知不在同一直线上的三点坐标,画弧,在线求代码,急!急!急!急! 刚学C#,求源程序! 一个关于在C#中的问题!( 从C++向C#,散分) net里如何发短消息? pda程序__将sql server ce数据库中多个表中符合条件的数据存入一个xml文件中的简单方法 这句是什么意思?
string del="(k:j;k)";src.Replace(del,"");
del内容不是固定的
string del="(k:j;k)"; src.Replace(del," ");好象要加空格然后再trim()
string result = System.Text.RegularExpressions.Regex.Replace(test, @"\([^()]*\)", "");
直接src.Replace(del,"");就可以,不用空格,我用过这种方式。
string oldStr="a:b:(k:j;k)jile";
//按"("拆分
string []Strs=oldStr.Split(new String[]{"("},StringSplitOptions.None);
//获得 a:b:
string newStr=Strs[0];
//按")"拆分
string []Strs2=Strs.Split(new String[]{")"},StringSplitOptions.None);
//获得 jile 并连接两次结果 获得两边字符串 从而达到替换效果newStr+=Strs2[2];
个人觉得 11楼的好
string src = "a:b:(k:j;k)jile";
string src = "a:b:(k:j;k)jile";
try
{
int lIndex = src.IndexOf('(');
int rIndex = src.IndexOf(')');
string sub = src.Substring(lIndex, (rIndex - lIndex + 1));
src = src.Replace(sub, string.Empty);
}
catch
{
//todo...
}
11楼的有错误哈
string oldStr = "a:b:(k:j;k)jile";
//按"("拆分
string[] Strs = oldStr.Split(new String[] { "(" }, StringSplitOptions.None);
//获得 a:b:
string newStr = Strs[0];
Console.WriteLine(Strs[1]);
//按")"拆分
string[] Strs2 = Strs[1].Split(new String[] { ")" }, StringSplitOptions.None);
//获得 jile 并连接两次结果 获得两边字符串 从而达到替换效果
//Console.WriteLine(Strs2[1]);
newStr += Strs2[1];
这样才是正确的。
这个方法正解,简单明了, 楼上的看清楚LZ问的是可变子串 所以直接用src.Replace(del,"");不行
//上次没编译 写的急了点 抱歉啊string oldStr="a:b:(k:j;k)jile";
//按"("拆分
string []Strs=oldStr.Split(new String[]{"("},StringSplitOptions.None);
//获得 a:b:
string newStr=Strs[0];
//按")"拆分
string []Strs2=Strs[1].Split(new String[]{")"},StringSplitOptions.None);
//获得 jile 并连接两次结果 获得两边字符串 从而达到替换效果newStr+=Strs2[1];
{
string text="a:b:(k:j;k)jile"
string pattern= @"\([^()]*\)";//匹配截取字符串的模式
MatchCollection mc=Regex.Matches(text,pattern);//满足pattern的匹配集合
Console.WriteLine("文本中包含的指定字符串有:");
foreach(Match match in mc)
{
Console.WriteLine(match.ToString());
}
Console.Read();
}
string result = System.Text.RegularExpressions.Regex.Replace(str, @"\(.*\)", "");
Console.WriteLine(result);
如果你不知道要替换的内容,那么你至少应该知道要替换掉的内容的 src 中的具体位置,那么就采用下面的方法,取得位置,拆分再组合。
这个简单的问题.2楼高效率解决了!这个年代民风不好!
string src=String.Format("a:b:{0}jile",变量A);
string del = 变量A;
src.Replace(del,"");
string src=String.Format("a:b:{0}jile",变量A);
string del = 变量A;
src.Replace(del,"");这个好
楼主自己要好好学习!!!
string src="a:b:(k:j;k)jile";
string del=src.subString(indexOf('('),lastIndexOf(')'));
src.Replace(del,"");
[/CODE]要先用subString把不定的字符串求出来。
int x = test.LastIndexOf("(");
int y=test.LastIndexOf(")");
string str = test.Replace(test.Substring(x, y-x+1), "");
Console.WriteLine(str);