使用regex和vb.net

时间:2015-05-22 15:25:56

标签: 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,而不是4,3084308

如何修改正则表达式以检索整数,无论​​它是否包含逗号和/或点?

1 个答案:

答案 0 :(得分:5)

您可以在字符类中添加逗号和点:

Dim m as Match = Regex.Match(str, "[\d.,]+")

这个太粗糙了,因为它允许像.,567,..这样的字符串。

你应该使用

Dim m as Match = Regex.Match(str, "\d+(?:[.,]\d+)*")

它会匹配11,2352,456.561,254,456.45等数字。

请参阅RegexStorm demo