Python使用正则表达式分隔字符串
这是我的字符串:Python使用正则表达式分隔字符串,python,regex,Python,Regex,这是我的字符串: st = "$10,8001st$6,480,2nd$2,160,3rd$1,188,4th$648,5th$324" 我的预期产出是: $10,800 1st $6,480, 2nd $2,160, 3rd $1,188, 4th $648, 5th $324 我写这段代码: result = " ".join(re.split("([\$\d\,]+)\d[a-zA-z]{2}", st)) 但输出不满足我,因为它删除了一些部分 有人能帮我吗?你可以用 text =
st = "$10,8001st$6,480,2nd$2,160,3rd$1,188,4th$648,5th$324"
我的预期产出是:
$10,800 1st $6,480, 2nd $2,160, 3rd $1,188, 4th $648, 5th $324
我写这段代码:
result = " ".join(re.split("([\$\d\,]+)\d[a-zA-z]{2}", st))
但输出不满足我,因为它删除了一些部分
有人能帮我吗?你可以用
text = "$10,8001st$6,480,2nd$2,160,3rd$1,188,4th$648,5th$324"
print(" ".join(re.split(r'(\$\d{1,3}(?:,\d{3})*,?)', text)).strip())
# => $10,800 1st $6,480, 2nd $2,160, 3rd $1,188, 4th $648, 5th $324
请参阅和。模式是一个匹配的单个捕获组(因此,re.split
也可以输出捕获的字符串)
-a\$
字符$
-一位、两位或三位数字\d{1,3}
-0或更多次出现的(?:,\d{3})*
,后跟三位数字,
-可选的,?
,
$444th
应该给出$444th
或$44th
?您好,欢迎来到stack overflow,问题不在于python,而在于您的regexp表达式,我建议您使用像regex101这样的站点来测试此类情况。请看一看,因为您看到最后一个部分没有作为一个部分进行解析。