如何编写正则表达式模式以匹配浮点数和整数的所有变体(用点或逗号分隔),并在长文本中使用两个字符的字母数字后缀(带空格或不带空格),如下所示:
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)/
答案 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