Вы можете использовать модуль регулярных выражений PyPi , который поддерживает квантификаторы бесконечной длины в следующем виде:
(?<=url="/transfer/packages/[^\r\n"]*)[A-Za-z0-9]{8}-(?:[A-Za-z0-9]{4}-){3}[A-Za-z0-9]{12}(?=[^\r\n"]*")
Пример Regex demo (с другим выбранным механизмом для демонстрационных целей) или см. Python demo
Другой вариант - сначала сопоставить строку с url="/transfer/packages/
, за которой следует guid, и сопоставлять до следующей двойной кавычки .
Тогда вы можете использовать, например, re.findall , чтобы получить все направляющие.
"/transfer/packages/[A-Za-z0-9]{8}-(?:[A-Za-z0-9]{4}-){3}[A-Za-z0-9]{12}[^"\r\n]*"
Regex demo | Python демо
Например:
import re
regex = r'"/transfer/packages/[A-Za-z0-9]{8}-(?:[A-Za-z0-9]{4}-){3}[A-Za-z0-9]{12}[^"\r\n]*"'
test_str = ("something .... something else ...\n"
"url=\"/transfer/packages/00000000-0000-0000-0000-000000000000/connectors/68f74d66-ca3d-4272-9b59-4f737946b3f7/something/138bb190-3b12-4855-88e2-0d1cdf46aeb5/...../...../...../...../....\"\n"
"other things ...\n\n"
"68f74d66-ca3d-4272-9b59-4f737946b300")
for str in re.findall(regex, test_str):
print(re.findall(r"[A-Za-z0-9]{8}-(?:[A-Za-z0-9]{4}-){3}[A-Za-z0-9]{12}", str))
Выход
['00000000-0000-0000-0000-000000000000', '68f74d66-ca3d-4272-9b59-4f737946b3f7', '138bb190-3b12-4855-88e2-0d1cdf46aeb5']