我该怎么写Regex呢
本文关键字:Regex | 更新日期: 2023-09-27 18:29:48
如果我有这个字符串:
18.62 PURCHASE REF 1 829400493183
我只想拉出18.62
。如果没有得到剩下的绳子,我该怎么做?(例如,不获取829400493183
.
如果不使用regex更容易做到这一点,我也愿意接受建议。
标记为C#也是因为这将进入我正在开发的应用程序。
这可以在没有RegEx的情况下完成,假设18.62
与其他部分相隔一个空格:
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(' '));
顺便说一下,Regex解决方案看起来像这样:
var str = "18.62 PURCHASE REF 1 829400493183";
var value = Regex.Match(str, @"^-?[0-9]+(?:'.[0-9]+)").Value;
这验证了数字,但仍然过于夸张,因为简单的int.TryParse
就可以完成这项工作。
您只需要添加错误检查(IndexOf
返回-1,Match
返回null
)。
似乎op想要第一个数字而不是第一个单词。如果是,则使用下面的regex并从组索引1中获取第一个数字。
Regex rgx = new Regex(@"^'D*('d+(?:'.'d+)?)");
演示