3 回答

TA貢獻(xiàn)1820條經(jīng)驗 獲得超10個贊
如果您re在 Python 中使用模塊,則可以使用str.startwith并嘗試:
import re
url="/transfer/packages/00000000-0000-0000-0000-000000000000/connectors/68f74d66-ca3d-4272-9b59-4f737946b3f7/something/138bb190-3b12-4855-88e2-0d1cdf46aeb5/...../...../...../...../...."
if url.startswith('/transfer/packages/'):
Guid_List = re.findall(r'(?i)[a-z0-9]{8}(?:-[a-z0-9]{4}){3}-[a-z0-9]{12}', url)
print(Guid_List)

TA貢獻(xiàn)1812條經(jīng)驗 獲得超5個贊
您可以使用支持無限長度量詞的PyPi 正則表達(dá)式模塊:
(?<=url="/transfer/packages/[^\r\n"]*)[A-Za-z0-9]{8}-(?:[A-Za-z0-9]{4}-){3}[A-Za-z0-9]{12}(?=[^\r\n"]*")
示例正則表達(dá)式演示(為演示目的選擇了另一個引擎)或查看Python 演示
另一種選擇是首先匹配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]*"
例如:
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']
添加回答
舉報