用于分隔工作数和十进制数的正则表达式

Regex to seperate a work and decimal number

我想要一个正则表达式来分隔单词和十进制数。

输入字符串示例:

{[FACEBOOK23.1K],[UNKNOWN6],[SKYPE12.12M]} 

预期结果:

{[FACEBOOK,23.1K],[UNKNOWN,6],[SKYPE,12.12M]}

所以目前我正在使用 re.findall(r'\D+|\d+.+\d+|\d+',element)

这里的元素是 [FACEBOOK23.1K] 并且它被分隔为 [FACEBOOK,23.1,K]

我尝试了以下正则表达式 =re.findall(r'\D+|(\d+.+\d+)?(K|M|G|T)|(\d+)?(K| M|G|T)|\d+',元素) 获得预期的结果,因为它在正则表达式在线模拟器上正确显示了分离,但是当我尝试我的代码时它不起作用? >>>>

#!/usr/bin/python2
# -*- coding: utf-8 -*-

import re

text = '{[FACEBOOK23.1K],[UNKNOWN6],[SKYPE12.12M]}';

m = re.findall('\[([a-z]+)([^\]]+)\]', text, re.IGNORECASE);

output = '{';
i = 0
for (name,count) in m:
    if i>0:
        output += ','
    output += "["+name+","+count+"]"
    i=i+1
output += '}'

print output