C#正则表达式拆分为非零数字,后跟任意数量的零

C#正则表达式拆分为非零数字,后跟任意数量的零,c#,regex,C#,Regex,我有一个数字作为字符串“10009003”,我想使用正则表达式将其拆分,以始终获得第一个非零数字,并包括所有尾随的零。然后获取下一个非零数字,后跟其后的零。如果一个非零的数字没有尾随的零,就抓住它 上面的数字字符串应生成数组/长度列表/计数3,如下所示 [0]=1000,[1]=900,[2]=3 我试过这个密码 var someNumberString = "10009003"; string s = @"[^1-9]+"; string[] strArray = Regex.Spl

我有一个数字作为字符串“10009003”,我想使用正则表达式将其拆分,以始终获得第一个非零数字,并包括所有尾随的零。然后获取下一个非零数字,后跟其后的零。如果一个非零的数字没有尾随的零,就抓住它

上面的数字字符串应生成数组/长度列表/计数3,如下所示 [0]=1000,[1]=900,[2]=3

我试过这个密码

var someNumberString = "10009003";     
string s = @"[^1-9]+";
string[] strArray = Regex.Split(someNumberString, s);
仅输出以下内容,但缺少零; [0]=1、[1]=9、[2]=3

如何让正则表达式包含尾随的零


提前感谢您的帮助:)

您可以使用此基于lookback和lookahead的正则表达式:

var someNumberString = "10009003";     
string s = @"(?<=[1-9]0*)(?=[1-9])";
string[] strArray = Regex.Split(someNumberString, s);

Console.Write(string.Join(" ", strArray));
//=> 1000 900 3
var someNumberString=“10009003”;

字符串s=@”(?您可以使用下面的
regex.Matches
函数

String input = @"10009003";
Regex rgx = new Regex(@"[1-9]+0*");
foreach (Match m in rgx.Matches(input))
Console.WriteLine(m.Groups[0].Value);
[1-9]
匹配范围从1到9的数字。
0*
匹配零个或多个
0


谢谢@anubhava,这给了我字符串[]数组,这就是我想要的。