python - 将带有运算符且没有空格的字符串转换为python中的列表
问题描述
我在下面有这个字符串。它没有空格。
"3.2+.4*5.67/6.145="
我希望有空间并保持花车完好无损。我还想迭代它以将元素添加到字符串或堆栈(最终目标是转换为后缀)。所以,我认为这是我需要的输出:
[3.2, +, .4, *, 5.67, /, 6.145, =]
关于如何做到这一点的任何想法?
后缀输出最终应该是这样的:
"3.2 .4 5.67 * 6.145 / +"
解决方案
re.split()
保留捕获组(括号中的内容):
import re
s = "3.2+.4*5.67/6.145="
[x for x in re.split("(\d*\.?\d*)", s) if x != '']
编辑:关于 OP 的更多信息。"(\d*\.?\d*)"
部分在说
\d
:匹配任何整数(\d
表示正则表达式中的整数)*
匹配我面前的零个或多个\.
匹配文字句点(因为在正则表达式中.
表示任何字符)?
匹配我面前的零或一件事\d
: 匹配任意整数*
匹配我面前的零个或多个
用括号括起来是诀窍。意思是捕获匹配的子字符串然后保留它们。通常,.split()
摆脱匹配的分隔符。
推荐阅读
- ios - iPhone 模拟器选项未在开发选项 safari 13.1 和 Mac OS X 10.15.4 中显示
- python - 如何使用 ImageGrab 旋转图像?
- angular - DecimalPipe 中的逗号分隔符
- swift - 如何处理从 API 返回的联合类型?
- c - 可变长度数组指令是如何生成的?
- javascript - p5js或js处理的目的是什么
- amazon-ec2 - SSH 连接被 EC2 实例拒绝
- c# - 将字符串转换为 24 小时日期时间格式
- javascript - 调整圆圈大小文本和 svg 大小
- python - Python pandas 对 groupby 语法的清晰说明