用于验证 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 byi`
  • 之一
  • \b一个单词边界

Regex demo