用于分隔工作数和十进制数的正则表达式
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
我想要一个正则表达式来分隔单词和十进制数。
输入字符串示例:
{[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