请检查图片link,要使文本变成蓝色标记,因此我必须删除“ 100”,“”,“-”和“”
我已经尝试过使用正则表达式,但是它也会删除句子中的数字
private static string RemoveNumber(string text)
{
return Regex.Replace(text,@"[\d-]",string.Empty);
}
注意:我只想删除第一个“-” 示例“ 500-我的书包颜色是蓝棕色” 我希望结果是“我的书包颜色是蓝棕色” ,而不是“我的书包颜色是蓝色” ,我只需要删除第一个“-”和数字,谢谢< / p>
答案 0 :(得分:1)
您可以使用Split()
函数和-
作为分隔符
Slipt Function返回一个字符串数组,其中包含用定界符分隔的子字符串。在您的分隔符为-
private static string RemoveNumber(string text)
{
//return text.Split('-')[1].Trim(); Use of 1 as a Index may lead to an exception : Array IndexOutofBound
//Safer way to get last substring from an array
return return text.Split('-').Take(2).LastOrDefault()?.Trim()
}
如果您输入的字符串包含多个-
,并且您只想在第一个带有分隔符的-
之前删除字符串,则可以将string.join
与split
一起使用。类似于
private static string RemoveNumber(string text)
{
var result = string.Join("-", text.Split('-').Skip(1));
return result;
}
//Also Updated .Net fiddle
工作量证明:.Net Fiddle
答案 1 :(得分:0)
您可以制作这样的方法:
public string GetSubString(string input, char delim)
{
var index = input.IndexOf(delim);
return index == -1 ? input : input.Substring(index + 1);
}
调用方法如下:
string inputStr = "1 - The hello world";
Console.WriteLine(GetSubString(inputStr, '-'));