簡體   English   中英

我將如何為此編寫正則表達式?

[英]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+)?)");

DEMO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM