Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式匹配s3链接_Python_Regex_Amazon S3 - Fatal编程技术网

Python 正则表达式匹配s3链接

Python 正则表达式匹配s3链接,python,regex,amazon-s3,Python,Regex,Amazon S3,我有一个s3对象,格式如下 https://s3-{region}.amazonaws.com/{bucket}/{environment}/{keyname} 我需要一个正则表达式,它可以从s3链接获取单个变量。目前我有以下正则表达式 r"https\:\/\/s3\-(\w+)\.amazonaws\.com\/(\w+)\/(\w+)\/(\w+)$" 但它不返回任何值。您可以选择: https?://s3- (?P<region>[^.]+).amazonaws.com/

我有一个s3对象,格式如下

https://s3-{region}.amazonaws.com/{bucket}/{environment}/{keyname}
我需要一个正则表达式,它可以从s3链接获取单个变量。目前我有以下正则表达式

r"https\:\/\/s3\-(\w+)\.amazonaws\.com\/(\w+)\/(\w+)\/(\w+)$"
但它不返回任何值。

您可以选择:

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

你有没有用类似的方法测试过?因此,您应该重新考虑
\w+
是否适合您得到的值。如果您在末尾省略美元符号会怎么样?哦。谢谢你,乔恩。区域名称中有
-
。相应地修改了正则表达式。
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)