![](/img/trans.png)
[英]Regex: non-zero number followed by one or more spaces followed by non-zero number
[英]C# regex split for A non-zero digit followed by an arbitrary number of zero
我有一個數字作為字符串“ 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
我如何使正則表達式包含尾隨零?
先謝謝您的幫助:)
您可以使用基於lookbehind和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
(?<=[1-9]0*)
( 向后看 )-如果當前位置前面有一個非零數字和0個或多個零 (?=[1-9])
( 前瞻 )-如果當前位置后跟一個非零數字 您可以使用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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.