我想解析一条与下面类似的行。
头等邮件(加拿大)(15.00)
从上面一行我只想要15.00
如何使用string.Split();
?
答案 0 :(得分:3)
如果您不想要这些物品,为什么要拆分?
如果是这种情况,则使用正则表达式提取值15.00。以下模式基本上是说找到一组带有句点的数字,以set
模式指定[\d.]
以下是+
,其中说明之前的 >匹配1或更多。使用该模式,它将捕获句子的数字部分。
Regex.Match("First Class Mail (Canada) (15.00)", @"[\d.]+").Value
但是,如果句子中可能包含其他数字,则必须使用pattern
数字规范更具体。有了这个想法,我们将精确地拼出数字模式,而不是仅仅在上面的set
中找到它。在这里,我们查找一个数字,一个或多个,然后是一个句点,然后是两个数字:
Regex.Match("1st Class Mail (Canada) (15.00)", @"\d+\.\d\d").Value
如果您确实需要其他项目,则可以创建新模式。
答案 1 :(得分:3)
我想出了一些简单的事情:
var str = "First Class Mail (Canada) (15.00)";
var result = str.Split(new[] {'(', ')'})[3];
假设所有数据的格式都相同。
答案 2 :(得分:0)
试试这个
var str = "First Class Mail (Canada) (15.00)";
var result = str.Split(new[] {' ', '(', ')'},StringSplitOptions.RemoveEmptyEntries)
.First(x => x.Replace(".", "").All(char.IsDigit));
答案 3 :(得分:0)
string str = "First Class Mail (Canada) (15.00)";
var array = Regex.Split(str, @"[^0-9\.]+")
.Where(c => c != "." && c.Trim() != "");