Я использовал следующий код для замены экранированных символов в строке. Сначала я сделал разбиение по \n
и использованному re.sub()
, но все же я не знаю, что мне не хватает, код не работает в соответствии с ожиданиями. Я новичок в Python, поэтому, пожалуйста, не судите, есть ли проблемы с оптимизацией. Вот мой код :
#import sys
import re
String = "1\r\r\t\r\n2\r\r\n3\r\r\r\r\n\r\n\r4\n\r"
splitString = String.split('\n')
replacedStrings = []
i=0
for oneString in splitString:
#oneString = oneString.replace(r'^(.?)*(\\[^n])+(.?)*$', "")
oneString = re.sub(r'^(.?)*(\\[^n])+(.?)*$', "", oneString)
print(oneString)
replacedStrings.insert(i, oneString)
i += 1
print(replacedStrings)
Моя цель здесь: Мне нужны только значения (без экранированных последовательностей) в качестве разделенных строк.
Мой подход здесь:
- Я разделил строку на
\n
, что дает мне список массивов отдельных строк.
- Затем я проверил каждую строку с помощью регулярного выражения, если регулярное выражение совпадает, то соответствующая подстрока заменяется на "".
- Затем я отправил эти строки в коллекцию, думая, что они будут хранить замененные строки в новом списке массивов.
Так что в основном я справился с 1 и 2, но в настоящее время я застрял на 3. Вот мой вывод:
1
2
3
4
['1\r\r\t\r', '2\r\r', '3\r\r\r\r', '\r', '\r4', '\r']