使用正则表达式拆分字符串

本文关键字:字符串 拆分 正则表达式 | 更新日期: 2023-09-27 18:13:14

我有以下格式的字符串:

string test = "test.BO.ID";

我的目标是字符串,无论第一个点之后的字符串的一部分。所以理想情况下,我期望输出为"boid"。

这是我尝试过的:

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

我得到的输出是空的

我需要为Regex做什么修改?

使用正则表达式拆分字符串

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

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

'.(.*)

或(具有前瞻性,以获得字符串作为Match.Value)

(?<='.).*

查看正则表达式演示和c#在线演示。

一个非正则表达式的方法可以使用String#Splitcount参数(demo):

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

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

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