我已经通过WiktorStribiżew的建议解决了这个问题。Python正则表达式点字符
已编辑:我只需要一次提取列表的第一个元素,因为我需要对该数字执行其他操作。我在我的代码中使用了一个循环来进行测试。
我想将算术表达式拆分为数字列表。
例如:1 + 0.2(3^4)* 5 - > [ '1', '0.2', '3', '4', '5']
我使用重新库在Python中,但表达式是用点符号''分割的。虽然我不包括'。'在delmiters。
即,当输入是1 + 0.2,则输出将是[ '1', '0', '2'],这应该是[ '1', '0.2']
的代码是如下:
#!/bin/python
import re
delims = re.compile(r"[+-/*///^)]")
while True:
string = input()
res = list()
i = 0
while i < len(string):
if string[i] >= '0' and string[i] <= '9':
num_str = delims.split(string[i:], 1)[0]
res.append(num_str)
i += len(num_str) - 1
i += 1
print(res)
我非常感谢这个问题的任何意见!
'-'创建一个范围,转义或移动到char类的结尾/开始处,使用'[ - +/* ^)]' –
[Here](http://stackoverflow.com/questions/32324595/error-in-regex-to-catch-special-characters/32324646#32324646)是一个类似的问题。 –
非常感谢!你太聪明了! –