使用正则表达式拆分字符串
本文关键字:字符串 拆分 正则表达式 | 更新日期: 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#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]);
如果您只想要第一个点之后的部分,则根本不需要正则表达式:
x.Substring(x.IndexOf('.'))