Регулярные выражения не использовались очень часто, у меня есть редкий случай, который описан ниже. Я пытаюсь использовать re.findall () на выходе команды. [использовал pexcept для запуска команды на удаленном хосте]
root@test# cinder image-metadata-show 9a4d222b-a6f2-4ddc-a1ce-9a635335a4b4 | grep 'image_id' | cut -d '|' -f3
46519bdf-3ae9-44e2-acce-bd1ac76fd523
Я пытаюсь получить 46519bdf-3ae9-44e2-acce-bd1ac76fd523, используя re.findall (), но проблема в том, что re.findall совпадает даже в команде. Мой окончательный вывод выглядит примерно так:
re.findall("(\w+-\w+-\w+-\w+-\w+)", volume_show)
output:['9a4d222b-a6f2-4ddc-a1ce-9a635335a4b4', '46519bdf-3ae9-44e2-acce-bd1ac76fd523']
Я хочу экранировать 9a4d222b-a6f2-4ddc-a1ce-9a635335a4b4, который хранится в переменной в моем коде.
например:
vol_id = 9a4d222b-a6f2-4ddc-a1ce-9a635335a4b4
re.findall("(\w+-\w+-\w+-\w+-\w+)", volume_show) except vol_id
output = ['46519bdf-3ae9-44e2-acce-bd1ac76fd523']
Как я могу это сделать? Я натолкнулся на re.escape () и использовал 'негативный взгляд', не очень понятно, как использовать вместе re.escape и re.findall (). Любые предложения будут высоко оценены.
ТИА