从字符串中删除前面的字符?
Posted
技术标签:
【中文标题】从字符串中删除前面的字符?【英文标题】:Remove front characters from a string? 【发布时间】:2013-10-17 19:24:34 【问题描述】:从字符串开头删除几个字符的最佳方法是什么?
sName = "IMG: Testing again"
sName = "TXT: This is amazing"
所以删除 IMG: 和 TXT.. 等...
所以我可以拥有这个?
sName = "Testing again"
sName = "This is amazing"
【问题讨论】:
你试过什么? How To Ask 您有要删除的前缀列表吗? 你真的应该先用谷歌搜索一下,这种问题已经被问过一百万次了,这里不应该再问了。 【参考方案1】:如果它总是四个字符,你可以做到。 sName = sName.Substring(5)
【讨论】:
会删除前三个字符并保留其余字符吗? 前四个字符从零开始,但是是的 这会删除前 3 个字符,而不是前 4 个。 更不用说用户也想删除空间,所以你应该使用sName.Substring(5)
来获得OP示例中的结果。
@RyanSchlueter:参数是startIndex
- 第一个包含。 OP 是对的 - 这将删除前三个字符,因为您从第四个字符开始。【参考方案2】:
我个人喜欢使用简单的regular expression 来完成此类任务。
var result = Regex.Replace(input, @"^[A-Z]+:\s*", "");
这与它将删除的其他方法的语义略有不同,因此这里解释了匹配项(另请参阅regular expression quick reference)。
^ # anchor match to start of input
[A-Z]+ # match one or more capital English-alphabet characters
: # match a colon
\s* # match zero or more spaces
因此,这种方法还可以匹配“HELLOWORLDILOVEYOU:said Fred”之类的输入,并去掉“TXT: Wut?”中多余的前导空格。
【讨论】:
@zimdanen 除了没有 - I'm not solving nqueens ;) 哎呀,看起来很有趣。 @zimdanen 我什至无法理解作者是如何开始如此疯狂的!我同意正则表达式可能会被过度使用,而且我已经看到了一些糟糕的变态。如果 1) 没有更合适的现有解析工具,我通常会感到安全; 2)我可以将正则表达式结构放在一行上; 3) 不用看笔记,第二天就能看懂。【参考方案3】:假设您始终使用TYPE: Text
格式,并且您想要Text
,请使用:
int index = sName.IndexOf(':') + 2; // two: one for the colon and one for the space
sName = sName.Substring(index);
这当然可以放在一行中;为了清楚起见,我将其分为两部分。
你也可以为一般情况做一个扩展方法:
public static string SubstringAfter(this string str, string sequence)
int index = str.IndexOf(sequence);
if (index > -1)
return str.Substring(str.IndexOf(sequence) + sequence.Length);
return str;
这让你可以这样做:
sName = sName.SubstringAfter(": ");
【讨论】:
【参考方案4】:如果它是固定格式,我建议您进行拆分。查看代码。拆分后第一个索引将拥有您的项目。
var sName = sName.Split( new char[] ':')[1].Trim();
【讨论】:
【参考方案5】: sName = sName.Remove(0,5); //simple but not perfect way
已编辑:
sName= sName.Split(':')[1]; //For splitting by ':'
sName = sName.Remove(0,1); //For the space, or use sName.Trim();
【讨论】:
这只会删除前 3 个字符,在示例中,用户想要删除前 5 个字符(包括空格)。【参考方案6】:你可以使用
sName = sName.SubString(4, sname.Length)
它将从第4个位置到字符串的最后一个位置的子字符串。
【讨论】:
以上是关于从字符串中删除前面的字符?的主要内容,如果未能解决你的问题,请参考以下文章