正则表达式匹配集合到十进制数组,排序,最小值到文本框作为 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
。
我正在尝试使用正则表达式在字符串中搜索十进制值。我想将匹配集合转换为十进制数组。然后我想对十进制数组进行排序,并使用 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
。