如何在任何数字或特殊字符之前获取文本?

时间:2013-12-13 10:10:10

标签: c#

我需要解析一个字符串,只返回第一个非字母字符前的字母字符。

示例1:

如果文字是 - John 123

预期结果是 - John

示例2:

如果文字是 - Anthony (Manager)

预期结果是 - Anthony

3 个答案:

答案 0 :(得分:4)

寻求简单的解决方案,交配:

var str = "Anthony (Manager)";
var res = str.TakeWhile(c => Char.IsLetter(c));

编辑:刚认识到你还需要空格:

var str = "Anthony Hopkins (Actor)";
var res = str.TakeWhile(c => Char.IsLetter(c) || Char.IsWhiteSpace(c));

答案 1 :(得分:0)

到目前为止,似乎一个简单的Regex可以解决您的问题:

        System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"^[a-zA-Z]+");
        string expected = reg.Match(input).Value;

答案 2 :(得分:0)

在空格分隔符上拆分字符串并取第一个元素:

var firstName = myStr.Split().FirstOrDefault();