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

时间:2011-11-23 17:57:34

标签: 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

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

/(\d+(.|,\d+)?\s\MB|KB|GB|TB)/

3 个答案:

答案 0 :(得分:5)

也许这就是诀窍:

(\d+(?:[.,]\d+)?)\s?([MKGT]B)

编辑:尊重@FailedDev的帖子,您可以添加\b来匹配字词边界。因此,它不会与1200MBPS匹配,而是1200MB

答案 1 :(得分:1)

我会这样做:

/\b\d+(?:[.,]\d+)?\s*[KMGTPE]?B\b/

Word锚定确保您在其他内容中不匹配。

答案 2 :(得分:1)

这可能有效,取决于边界条件的上下文:

/\b(\d+(?:[.,]\d+)?\s?[MKGT]B)\b/gi