如果我有这个字符串:
18.62 PURCHASE REF 1 829400493183
我想要的就是18.62
。如果没有得到剩余的字符串,我该怎么做? (例如,没有获得829400493183
。
如果不使用正则表达式更容易做到这一点,我也愿意接受建议。
标记为C#也是因为这是我正在处理的应用程序。
答案 0 :(得分:4)
可以在没有RegEx的情况下完成,假设18.62
与其余部分隔开一个空格:
string s = "18.62 PURCHASE REF 1 829400493183";
string r = s.Split()[0];
答案 1 :(得分:1)
这是一个不同的解决方案,因为您实际上并不需要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
。)
答案 2 :(得分:0)
似乎op想要第一个数字而不是第一个单词。如果是,则使用以下正则表达式并从组索引1获取第一个数字。
Regex rgx = new Regex(@"^\D*(\d+(?:\.\d+)?)");