Skip to main content
 首页 » 编程设计

python之匹配 s3 链接的正则表达式

2025年02月15日31sky-heaven

我有一个以下格式的 s3 对象。

https://s3-{region}.amazonaws.com/{bucket}/{environment}/{keyname} 

我需要一个正则表达式,它可以从 s3 链接中获取各个变量。目前我有以下正则表达式。

r"https\:\/\/s3\-(\w+)\.amazonaws\.com\/(\w+)\/(\w+)\/(\w+)$" 

但它返回 None。

请您参考如下方法:

你可以去:

https?://s3- 
(?P<region>[^.]+).amazonaws.com/ 
(?P<bucket>[^/]+)/ 
(?P<environment>[^/]+)/ 
(?P<keyname>.*) 

参见 a demo on regex101.com .


在 Python 中,这将是:

import re 
 
rx = re.compile(r''' 
    https?://s3- 
    (?P<region>[^.]+).amazonaws.com/ 
    (?P<bucket>[^/]+)/ 
    (?P<environment>[^/]+)/ 
    (?P<keyname>.*)''', re.VERBOSE) 
 
links = rx.findall(your_string_here)