Я решил эту проблему с помощью предложения Wiktor Stribiżew.Python regular expression dot character
Отредактировано: Мне нужно только извлечь первый элемент списка за раз, потому что мне нужно выполнить другие операции над этим номером. Я использую цикл в своем коде только для тестирования.
Я хочу разбить арифметическое выражение на список чисел.
Например: 1 + 0,2- (3 в^4) * 5 -> [ '1', '0,2', '3', '4', '5']
Я использую библиотеку повторно в python, но выражение разделяется символом точки. хотя я не включаю '.' в дельтерах.
А именно, когда вход 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, используйте' [- +/* ^)] ' –
[Здесь] (http://stackoverflow.com/questions/32324595/error-in-regex-to-catch-special-characters/32324646 # 32324646) - аналогичный вопрос. –
Спасибо большое! Вы великолепны! –