用于验证 10,10Gi,10.5Mi,10Ki 等大小单位的正则表达式?
Regex to validate size units like 10,10Gi,10.5Mi,10Ki?
我正在使用这个正则表达式 /\d+\.*\d*[KMG]i/gm
来验证 10Ki、10Mi 和 10Gi 等单位的大小,但我遇到了一个问题,我只想要这个数值以及 10、12、15 之类的任何值,除了我当前的正则表达式只允许在下面给出:
正则表达式:/\d+\.*\d*[KMG]i/gm
允许:14.4Mi、9.9Gi、10Ki
要求:14、14.4、14.4Mi、9.9Gi、10Ki
任何帮助将不胜感激。
谢谢
您需要将小数部分设为可选,末尾的字母字符设为可选。您可以使用正则表达式中的问号来执行此操作:
\d+(.\d)?([KMG]i)?
符合您的所有要求
\d+(.\d)?([KMG]i)?
此正则表达式将满足您的所有要求。
仅供参考,您可以在 https://regex101.com/
上使用正则表达式
您可以匹配点后的 1 个或多个数字,并使用单词边界来防止部分匹配:
\b\d+(?:\.\d+)?(?:[KMG]i)?\b
\b
防止部分匹配的单词边界
\d+
匹配 1+ 个数字
(?:\.\d+)?
可选择使用非捕获组匹配 .
和 1+ 个数字
(?:[KMG]i)?
可选择匹配 K
M
Gfollowed by
i` 之一
\b
一个单词边界
我正在使用这个正则表达式 /\d+\.*\d*[KMG]i/gm
来验证 10Ki、10Mi 和 10Gi 等单位的大小,但我遇到了一个问题,我只想要这个数值以及 10、12、15 之类的任何值,除了我当前的正则表达式只允许在下面给出:
正则表达式:/\d+\.*\d*[KMG]i/gm
允许:14.4Mi、9.9Gi、10Ki
要求:14、14.4、14.4Mi、9.9Gi、10Ki
任何帮助将不胜感激。 谢谢
您需要将小数部分设为可选,末尾的字母字符设为可选。您可以使用正则表达式中的问号来执行此操作:
\d+(.\d)?([KMG]i)?
符合您的所有要求
\d+(.\d)?([KMG]i)?
此正则表达式将满足您的所有要求。
仅供参考,您可以在 https://regex101.com/
上使用正则表达式您可以匹配点后的 1 个或多个数字,并使用单词边界来防止部分匹配:
\b\d+(?:\.\d+)?(?:[KMG]i)?\b
\b
防止部分匹配的单词边界\d+
匹配 1+ 个数字(?:\.\d+)?
可选择使用非捕获组匹配.
和 1+ 个数字(?:[KMG]i)?
可选择匹配K
M
Gfollowed by
i` 之一
\b
一个单词边界