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

Regex 正则表达式在VB.NET中将集合与十进制数组、排序、最小值与文本框匹配为十进制,regex,vb.net,Regex,Vb.net,我正在尝试使用正则表达式搜索字符串中的十进制值。我想将matches集合转换为十进制数组。然后我想对十进制数组进行排序,并使用VB.NET将最小的十进制值添加到文本框中。这可能吗?不确定要在字符串中查找哪种类型的值,但使用中的正则表达式,可以执行以下操作: Dim str = "1.23 ds -100.2 xyz 97.5 1.22 .1" Dim minVal = Regex.Matches(str, "[+-]?((\d+(\.\d*)?)|(\.\d+))") _ .Cast(O

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

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

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

CastOf Match函数允许您在匹配项上使用LINQ扩展方法,使用Select将匹配值转换为十进制,然后使用Min查找最小值


然后可以使用minVal设置文本框。

donno关于VB语法,但使用foreach循环不是很简单吗?是的,这是可能的。你试过什么吗?我试过以下代码:dim regex as system.text.regular expressions.regex=New system.text.regular expressions.regexregex代码dim match as match Collection=regex.MatchesTextBox1.text match.toarrymatcharray我试过以下代码:dim regex as system.text.regular expressions.regex=Newsystem.text.regularexpressions.regexregex代码Dim match As match Collection=regex.MatchesTextBox1.text然后我迷路了。。。。。。但以下是我尝试执行match.Convert.ToDecimalmatch.ToArrryMatchArray.SortmatchArray MatchArray 0=TextBox2.Text的操作指南