Java正则如何实现匹配小数点后仅为2位或4位纯数字的字符串
正则修正方案
错误原因
你之前编写的正则把所有规则放到了[]字符组中,字符组仅会匹配单个位置的字符,内部的分组符号、或逻辑符号、量词都会被识别为普通字符,完全无法实现预期的长度校验和类型限制逻辑。
正确正则写法
适配你所用的matches方法(默认全量匹配规则)的正确写法如下:
variable.matches("\\.(\\d{2}|\\d{4})")
规则说明
\\.:转义后匹配小数点本身,避免被识别为正则通配符\\d:等价于[0-9],仅匹配0-9的数字字符,自动过滤非数字内容{2}/{4}:量词,限定前面的数字刚好出现2次或者4次- 小括号包裹两种长度规则,用
|实现「2位数字」或「4位数字」的或逻辑判断
如果需要严格禁止字符串前后存在其他多余字符,可以额外添加首尾锚点,写法如下:
variable.matches("^\\.(\\d{2}|\\d{4})$")
内容的提问来源于stack exchange,提问作者powqmnbvc21
相关产品推荐
相关产品推荐

