使用regex和vb.net从字符串中提取数字
给定一个包含数值的字符串,我需要提取该值并将其分配给变量。我使用以下方法来实现这一点:使用regex和vb.net从字符串中提取数字,regex,vb.net,Regex,Vb.net,给定一个包含数值的字符串,我需要提取该值并将其分配给变量。我使用以下方法来实现这一点: Dim m as Match = Regex.Match(str, "\d+") If m.Success Then test = m.Groups(0).Value End If 它适用于以下字符串: This is a 4308 number 我提取了4308。但是,如果数值包含逗号或点: This is a 4,308 number 然后,提取的值是4,而不是4308或4308 如何修改正
Dim m as Match = Regex.Match(str, "\d+")
If m.Success Then
test = m.Groups(0).Value
End If
它适用于以下字符串:
This is a 4308 number
我提取了4308
。但是,如果数值包含逗号或点:
This is a 4,308 number
然后,提取的值是4
,而不是4308
或4308
如何修改正则表达式以检索整数,无论它是否包含逗号和/或点?您可以将逗号和点添加到字符类中:
Dim m as Match = Regex.Match(str, "[\d.,]+")
这个太粗糙了,因为它允许像、567、…
这样的字符串
你应该使用
Dim m as Match = Regex.Match(str, "\d+(?:[.,]\d+)*")
它将匹配诸如1
,1235
,2456.56
,1254456.45
等数字
看