![](/img/trans.png)
[英]How to write a regex that would ignore what would otherwise be a nested capture?
[英]How would I write the Regex for this?
如果我有這個字符串:
18.62 PURCHASE REF 1 829400493183
我只想拉出18.62
。 在沒有得到其余字符串的情況下,我該怎么做? (例如,未獲取829400493183
。
如果不使用正則表達式更容易做到這一點,我也很樂意提出建議。
也被標記為C#,因為這正進入我正在處理的應用程序中。
假設18.62
與其余部分之間用空格隔開,則可以不使用RegEx來完成:
string s = "18.62 PURCHASE REF 1 829400493183";
string r = s.Split()[0];
這是一個不同的解決方案,因為您實際上不需要Split
:
var str = "18.62 PURCHASE REF 1 829400493183";
var value = str.Substring(0, str.IndexOf(' '));
順便說一句,正則表達式解決方案如下所示:
var str = "18.62 PURCHASE REF 1 829400493183";
var value = Regex.Match(str, @"^-?[0-9]+(?:\.[0-9]+)").Value;
這可以驗證數字,但由於簡單的int.TryParse
可以完成工作,因此仍然int.TryParse
。
您只需要添加錯誤檢查( IndexOf
返回-1, Match
返回null
)。
好像op想要第一個數字而不是第一個單詞。 如果是,則使用下面的正則表達式並從組索引1獲取第一個數字。
Regex rgx = new Regex(@"^\D*(\d+(?:\.\d+)?)");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.