给定一个带有数值的字符串,我需要提取该值并将其赋值给变量。我使用以下内容来实现:
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
,而不是4,308
或4308
。
如何修改正则表达式以检索整数,无论它是否包含逗号和/或点?
答案 0 :(得分:5)
您可以在字符类中添加逗号和点:
Dim m as Match = Regex.Match(str, "[\d.,]+")
这个太粗糙了,因为它允许像.,567,..
这样的字符串。
你应该使用
Dim m as Match = Regex.Match(str, "\d+(?:[.,]\d+)*")
它会匹配1
,1,235
,2,456.56
,1,254,456.45
等数字。