Я пытаюсь сделать что-то, что мне показалось простым, но у меня возникли проблемы с регулярным выражением. В частности, я хочу найти CAUGHT AN ERROR
и все после него в одной строке и заменить его на CAUGHT AN ERROR: XXXXX
. Насколько я понимаю, использование .*$
( пример ) позволит мне искать до конец строки, но я не получаю точную замену, используя для l oop. Как я могу заменить все после символов, которые я ищу?
1970-01-01 10:59:02
1970-01-01 10:59:02
1970-01-01 10:59:01 CAUGHT AN ERROR: rmv: cannot remove '/media/^Red^XXXXXX.jpg': No such file or directory; FROM: exec rm [file join $drive $newFile] (in USB::Write /)
1970-01-01 10:59:01 CAUGHT AN ERROR: rmv: cannot remove '/media/^Green^XXXXXX.jpg': No such file or directory; FROM: exec rm [file join $drive $newFile] (in USB::Write /media/ug)
1970-01-01 10:59:02 CAUGHT AN ERROR: rmv: cannot remove '/media/^Blue^XXXXXX.jpg': No such file or directory; FROM: exec rm [file join $drive $newFile] (in USB::Write /medi0349223^BradbuXXXXXX.jpg)
1970-01-01 10:59:02 CAUGHT AN ERROR: rmv: cannot remove '/media/^XXXXXX.jpg': No such file or directory; FROM: exec rm [file join $drive $newFile] (in USB::Write /media/usb0 XXXXXX.jpg)
1970-01-01 10:59:02 CAUGHT AN ERROR: rmv: cannot remove '/media/^Orange^XXXXXX.jpg': No such file or directory; FROM: exec rm [file join $drive $newFile] (in USB::Write )
1970-01-01 10:59:02
Я сохраняю приведенный выше пример журнала в файле и затем выполняю следующий код:
with open(r'C:\Users\Downloads\LOG\sample.log', mode='r', encoding='utf8') as log_r:
content = log_r.read()
dict_items = {r'CAUGHT AN ERROR: [A-Z|a-z|0-9|\.|\-|\,|\_|\{|\}|\)|\(|\/]*\+': r'CAUGHT AN ERROR: XXXXXX'}
for k, v in dict_items.items():
content = re.sub(k, v, content)
print(content)
В моем словаре я также пытался, но безрезультатно.
r'CAUGHT AN ERROR: .\$'
r'CAUGHT AN ERROR: .*$'
Ожидаемый результат
1970-01-01 10:59:02
1970-01-01 10:59:02
1970-01-01 10:59:01 CAUGHT AN ERROR: XXXXXX
1970-01-01 10:59:01 CAUGHT AN ERROR: XXXXXX
1970-01-01 10:59:02 CAUGHT AN ERROR: XXXXXX
1970-01-01 10:59:02 CAUGHT AN ERROR: XXXXXX
1970-01-01 10:59:02 CAUGHT AN ERROR: XXXXXX
1970-01-01 10:59:02