VBA + Regex:测试数字

时间:2014-07-21 15:03:02

标签: regex vba

这是一个匹配所有数字的正则表达式(如23.4; 24; .123)

Const decimalPattern As String = "-?([0-9]+[\,\.][0-9]*)|([0-9]*[\,\.][0-9]+)|([0-9]+)"

这是我用来测试数字的代码(我用点替换逗号)

regex.Pattern = decimalPattern
   If (regex.test(dmsExpression) = True) Then
       coord = Val(Replace(dmsExpression, ",", "."))
       convertDMSToDecimal = coord
       Exit Function

此测试为所有预期的数字值提供了'True'。但我也想测试像“23 34 56”或“23-34-56”

这样的值的表达式

在这些情况下,测试返回'True',我希望它返回false。我只是不知道我应该使用什么表达式,或者如何更改我的代码以便在这种情况下返回'False'。

1 个答案:

答案 0 :(得分:0)

请试试这个

(?!\d*[ -]\d)[^\d][+-]?\d*([.,]\d*)?(?<!-)(?!\d*[ -]\d)

Demo