繁体   English   中英

使用正则表达式和vb.net从字符串中提取数字

[英]Extracting a number from a string using regex and 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

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

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

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演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM