结合正则表达式在C#中分割字符串

时间:2016-06-03 13:30:05

标签: c# string

我有一个字符串“Welcome Jacob(jacob@test.com)。 我需要输出为“Welcome J” 即我需要输出作为字符串的第一个单词和字符串第二个单词的第一个字母。 我可以做到这一点 string entireString = "Welcome Jacob (jacob@test.com)"; string [] words = a.Split(' '); string 2ndLetter = words[1].Substring(0,1); Console.WriteLine(words[0]+" "+2ndLetter);

有更好的方法吗? 像空间和单词的第一个字母组合正则表达式的东西? 像

这样的东西
var name = Regex.Split(temp, @"/^((\s)|([a-zA-Z ])')$"

2 个答案:

答案 0 :(得分:3)

不确定您是否更好地考虑这一点,但您可以在一行中完成。

string output = entireString.Substring(0, entireString.IndexOf(" ") + 2)

答案 1 :(得分:1)

你可以做这样的事情,不需要实际拆分字符串:

string entireString = "Welcome Jacob (jacob@test.com)";
var r = new Regex(@"^\S+\s\S");
Console.WriteLine(r.Match(entireString).Value);   // outputs Welcome J

正则表达式匹配1个或多个非空格字符,空格,然后匹配单个非空格字符。如果有必要,你可以更严格。