使用Regex拆分字符串

时间:2016-10-14 11:57:39

标签: c# asp.net .net regex c#-4.0

我有以下格式的字符串:

string test = "test.BO.ID";

我的目标是字符串是字符串的一部分,无论是在第一个点之后。 理想情况下,我希望输出为 " BO.ID"。

以下是我的尝试:

// Checking for the first occurence and take whatever comes after dot
var output = Regex.Match(test, @"^(?=.).*?"); 

我得到的输出是空的。

我需要对Regex进行哪些修改?

2 个答案:

答案 0 :(得分:4)

您得到一个空输出,因为您拥有的模式可以匹配字符串开头的空字符串,这就足够了,因为.*?是一个惰性子模式,.匹配任何char。< / p>

使用(值将在Match.Groups[1].Value

\.(.*)

或(使用预测,将字符串作为Match.Value

(?<=\.).*

请参阅regex demoC# online demo

非正则表达式方法可以使用String#Split count参数(demo):

var s = "test.BO.ID";
var res = s.Split(new[] {"."}, 2, StringSplitOptions.None);
if (res.GetLength(0) > 1)
    Console.WriteLine(res[1]);

答案 1 :(得分:3)

如果您只想要第一个点后的部分,则根本不需要正则表达式:

x.Substring(x.IndexOf('.'))