我有一个无法控制的源,我想过滤掉其中包含某些字符的所有字符串。例如,在这些之外:
9
8.1.0
5.0
9.0
5.1
8.0.0
7.0 (cdfsdsdsd)
5.0.2
8
7.0.1
7.1
6.0
7.0
Over 32323
7.0 rdx K9 bnsm
9.2.3
8.oo
pp
unknown
8.0_vgfe10051988
6.0.1
8.0.0-derv10051988
9.1
9.0.0
8.0.1
7.0_xccv10051988
7.1.3
10.0
7.0.X.1.C
8.0.0_vged10051988
4.4.4
7.1.2
7.0 [NKL 24 | ABC]
8.1
7.1.1
5.1.1
7.0_Jgrd10051988
9.XXX
9.0.1
8.0
5.0.1
8.1.1
10
其中,我只需要那些只包含数字和。的字符串。
9
8.1.0
5.0
9.0
5.1
8.0.0
5.0.2
8
7.0.1
7.1
6.0
7.0
9.2.3
6.0.1
9.1
9.0.0
8.0.1
7.1.3
10.0
4.4.4
7.1.2
8.1
7.1.1
5.1.1
9.0.1
8.0
5.0.1
8.1.1
10
我尝试过许多正则表达式,但似乎没有什么通用的,此正则表达式也提供[0-9]*.?[0-9]
字符串。我正在工作的是^(\*|\d+(\.\d+){0,2}(\.\*)?)$
,但这不是POSIX。
如何获得在Redshift上也可以使用的POSIX?
通过查看Amazon文档,似乎Redshift支持POSIX ERE。那你可以试试:
^[[:digit:]]+(\.[[:digit:]]+)*$