[英]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,308
或4308
。
如何修改我的正则表达式以检索整数,无论它是否包含逗号和/或点?
您可以在字符类中添加逗号或点号:
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
等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.