如何从字符串中删除字符的确切出现?例如,我有这样一个字符串:stringstr="santhosh,phani,ravi,phani123,praveen,sathish,prakash";我想从str中删除,phani。现在,我正在使用str=str.Replace(",phani",string.Empty);然后我的输出是:str="santhosh,ravi123,praveen,sathish,prakash";但我想要一个输出:str="santhosh,ravi,phani123,praveen,sathish,prakash";stringstr="santhosh,phani,ravi,phani123,praveen,sathish,prakash";varwords=str.Split(',');str=String.Join(",",words.Where(word=>word!="phani"));更好的选择是使用Split和Join方法。Linq很简单:Stringstr="santhosh,phani,ravi,phani123,praveen,sathish,prakash";字符串令牌=“phani”;Stringresult=String.Join(",",str.Split(',').Where(s=>s!=token));(编辑:我需要时间来测试,我不是第一次^^)String.join(",",str.split(',').ToList().remove("phani"));从列表中删除任何给定名称。str=str.Replace(",phani,",",");怎么样?但是,如果“phani”是字符串中的最后一项,这将不起作用。要解决此问题,您可以这样做:stringsource="...";来源+=“,”;//在末尾显式添加一个逗号source=source.Replace(",phani,",",").TrimEnd(',');这会添加一个逗号,替换“phani”并删除尾随的逗号。第三种解决方案是:str=String.Join(",",str.Split(',').ToList().Remove("phani").ToArray());尝试使用逗号代替;stringstr="santhosh,ravi,phani,phani123,praveen,sathish,prakash";str=str.Replace(",phani,",",");控制台.WriteLine(str);输出将是;santhosh、ravi、phani123、praveen、sathish、prakash这是一个演示。正如Davin在评论中提到的,如果phani是字符串中的最后一项,这将不起作用。Silvermind的答案看起来是正确的。stringstr="santhosh,phani,ravi,phani123,praveen,sathish,prakash";字符串模式=@"b,phani,b";字符串替换=",";Console.WriteLine(Regex.Replace(str,pattern,replace));输出:santhosh,ravi,phani123,praveen,sathish,prakash您可以使用正则表达式,但您必须处理字符串以子字符串开头或结尾的情况:varpattern=@",?bphanib,?";varregex=newRegex(模式);varresult=regex.Replace(input,",").Trim(',');更短的符号可能如下所示:varresult=Regex.Replace(input,@",?bphanib,?",",").Trim(',');正则表达式解释:,?bphanib,?匹配单词phani,但前提是它前后有一个单词分隔符(因为单词边界元字符b),并且它可以(但不一定)前后有一个逗号,谢谢,?这意味着没有或更多的逗号。最后我们需要从字符串的开头和结尾删除可能的逗号,这就是结果上有Trim(',')的原因。以上就是C#学习教程:如何删除字符串中某个字符的精确出现?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
