仅匹配数字和点(。),可能重复也可能不重复

时间:2018-03-13 08:36:02

标签: regex vba

我正在尝试在VBA中测试以下字符串。

Test String                               Expected Result
10                                        TRUE
10.23                                     TRUE
10.24.01                                  TRUE
10.24.02                                  TRUE
11.1                                      TRUE
AAA-78-102396-AA-A00-00811-0000-02.zip    FALSE
AAA-78-102396-AA-A00-00811-0000-02.pdf    FALSE

如您所见,我对数字或带点(。)的序列感兴趣

我尝试使用以下表达式。

\b[0-9(|\.)]+\b

但不幸的是,它在最后两个字符串中选择了 - 分隔的数字。怎么办呢?我是RegExp的基本用户,我在询问之前尝试搜索,但无法得到任何结果。

3 个答案:

答案 0 :(得分:1)

您只能在Excel中执行此操作。如果第一列是A,则在B2中输入以下公式:

=IF(IFERROR(--SUBSTITUTE(A2, ".", ""), FALSE()), TRUE(), FALSE())

问候。

答案 1 :(得分:1)

您正在寻找小数的可选第二部分:

^\d+(?:\.\d+)*$

^$个锚分别匹配输入字符串的开头和结尾。如果您想在较大的文字内部进行匹配,请将其替换为\b

答案 2 :(得分:1)

您可以尝试 \b(^\d+)|(\d*?\.\d+?)\b

在此工作演示https://regex101.com/r/acUmrB/4

enter image description here