正则表达式用于多个数字变体+字母数字后缀

edi*_*igu 3 regex

我如何编写一个正则表达式模式来匹配浮点数和整数的所有变体(用点或逗号分隔)与长文本中的两个字符的字母数字后缀(带空格或不带空格),如下所示:

34MB
34 MB
34.3MB
34,3MB
34.30MB
34,30MB
34,30 MB
5MB
5 MB
1.024MB
1.024 MB
1,024MB
10,67MB
10.67MB
Run Code Online (Sandbox Code Playgroud)

可能吗?我尝试过类似的东西,但没有工作

/(\d+(.|,\d+)?\s\MB|KB|GB|TB)/
Run Code Online (Sandbox Code Playgroud)

hoc*_*chl 5

也许这就是诀窍:

(\d+(?:[.,]\d+)?)\s?([MKGT]B)
Run Code Online (Sandbox Code Playgroud)

编辑:尊重@FailedDev的帖子,您可以附加一个\b匹配单词边界.因此,它不会匹配1200MBPS,但是1200MB.

  • 我会稍微修改它为`(\ d +(?:[.,]\d +)?)\ s?([MKGT] B)`所以它将值和单位放在捕获组中:http://rubular.com/R/B0KC8WJe8Q (3认同)