获取字符串中的特定句子

时间:2019-01-21 05:10:31

标签: c#

请检查图片link,要使文本变成蓝色标记,因此我必须删除“ 100”,“”,“-”和“”

我已经尝试过使用正则表达式,但是它也会删除句子中的数字

private static string RemoveNumber(string text)
    {
        return Regex.Replace(text,@"[\d-]",string.Empty);
    }

注意:我只想删除第一个“-” 示例“ 500-我的书包颜色是蓝棕色” 我希望结果是“我的书包颜色是蓝棕色” ,而不是“我的书包颜色是蓝色” ,我只需要删除第一个“-”和数字,谢谢< / p>

2 个答案:

答案 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.joinsplit一起使用。类似于

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, '-'));