我正在尝试创建验证,因此传递的值应该是我期望的格式。
例如,值可以是40%
或40GB
。
我正在尝试使用正则表达式
(\\d*\\.?\\d*)([MB|GB|TB|PB|%]?)
上面的正则表达式是否正确?
答案 0 :(得分:1)
不,这是错的。
字符类[xyz]
用于匹配单个字符。事实上,[MB|GB|TB|PB|%]
表示匹配单个字符,该字符是M
,B
,|
,G
,T
,{{1}之一}或P
。分组应该使用%
而不是(?:...)
。
[...]
当然最好收集字节的前缀。另外,我认为该单位是强制性的,因此应删除((?:MB|GB|TB|PB|%)?)
:
?
正则表达式匹配一个空的子字符串,所以任何东西都会通过,例如使用
([MGTP]B|%)
代替。
合:
\d+(?:\.\d+)?
答案 1 :(得分:1)