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

Regex match collection to decimal array, sort, least value to textbox as decimal in VB.NET

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

不确定您要在字符串中查找哪种类型的值,但是使用 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