Подскажите, что нужно дописать в регулярном выражении?
У меня имеется словарь:
resul = {"SN":"SN: abc123\r\nMAC: 10:ab:cd:30:5C:7C\r\n01-04-2022 Замена"}
я написал в коде регулярное выражение:
name_match_3 = re.search(r'(\r\n.+)', test1.get('sn'), flags=re.DOTALL)
dict_miner_regular['Comment'] = (name_match_3.group(1) if name_match_3 else None)
в итоге у меня получается:
result_2 = {'Comment':'MAC: 10:ab:cd:30:5C:7C\r\n01-04-2022 Замена'}
Но мне надо убрать и MAC: 10:ab:cd:30:5C:7C. Но он не везде есть.
в итоге надо, чтобы убралось SN: и MAC:
result_3 = {'Comment':'01-04-2022 Замена'}
я понимаю, что надо что-то дописать сюда --> (r'(\r\n.+)' ...
Ответы (3 шт):
Автор решения: strawdog
→ Ссылка
делайте сплит по переводу строки и берите последний элемент этого сплита. и подставляйте куда вам нужно.
resul = {"SN":"SN: abc123\r\nMAC: 10:ab:cd:30:5C:7C\r\n01-04-2022 Замена"}
res = {}
res["Comment"] = resul["SN"].split("\n")[-1]
res:
{'Comment': '01-04-2022 Замена'}
Автор решения: Wiktor Stribiżew
→ Ссылка
Используйте
(?m)^(?!SN|MAC)[^\r\n]+
Подробности
(?m)- многострочный режим включен^- начало строки(?!SN|MAC)- сразу после текущей позиции не должно быть ниSN, ниMAC[^\r\n]+- один и более символов, отличным от символов перевода строки LF / CR