使用正则表达式查找数字

时间:2015-04-04 17:54:29

标签: regex vbscript

我尝试使用正则表达式Vbscript查找数字,我使用\d{1}\d,它找到一个单词或日期的任何数字,我只是不想从日期或字符串中提取,它只是数字,数字或点(.)周围没有任何内容,我怎样才能找到它?

示例

12/12/2009 - No need to match

09 - no need to match

8. match

7 match

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

你可以使用这样的正则表达式:

(^|[\b\s])\d\b

<强> Working demo

enter image description here

答案 1 :(得分:0)

如果您的规格是“匹配恰好一位数字的字符串”,请使用“^ \ d $”(字符串开头 - 一位数字 - 字符串结尾) - 如

>> Set r = New RegExp
>> r.Pattern = "^\d$"
>> For Each s In Split("12/12/2009 09 8 7 a7b")
>>     WScript.Echo s, CStr(r.Test(s))
>> Next
>>
12/12/2009 False
09 False
8 True
7 True
a7b False

如果没有,请说明您的规格。

<强>更新

因为我确实错过了“8”中的点。并且混合了“包含”和“编组”,我为“匹配完全包含一位数的字符串”输入“^ \ D * \ d \ D * $”:

>> r.Pattern = "^\D*\d\D*$"
>> For Each s In Split("2/1/2009 09 8. 7 a7b")
>>     WScript.Echo s, CStr(r.Test(s))
>> Next
>>
2/1/2009 False
09 False
8. True
7 True
a7b True