正则表达式匹配集合到十进制数组,排序,最小值到文本框在VB.NET中作为十进制

时间:2015-01-21 23:54:04

标签: regex vb.net

我正在尝试使用正则表达式来搜索字符串中的十进制值。我想将匹配集合转换为十进制数组。然后我想对十进制数组进行排序,并使用VB.NET将最小的十进制值添加到文本框中。这可能吗?

1 个答案:

答案 0 :(得分:0)

不确定要在字符串中查找哪种值,但使用this answer中的正则表达式,您可以执行以下操作:

Dim str = "1.23 ds -100.2 xyz 97.5 1.22 .1"
Dim minVal = Regex.Matches(str, "[+-]?((\d+(\.\d*)?)|(\.\d+))") _
    .Cast(Of Match)() _
    .Select(Function(x) CDec(x.Value)) _
    .Min()
Debug.WriteLine(minVal)

将打印-100.2

Cast(Of Match)()函数允许您使用匹配项上的LINQ扩展方法,使用Select将匹配的值转换为十进制,然后使用Min找到最小值。

然后,您可以使用minVal设置TextBox