在这种情况下如何使用正则表达式进行字符串格式化
How can I utilize regular expressions for string formating in this scenario
我正在编写一个 python 脚本来验证 AWS IAM 策略并想知道如何在这个用例中使用正则表达式。
例如我有这个政策:
{'Action': ['s3:PutObject', 'kms:GenerateKey'],
'Effect': 'Allow'
'Resource': ['arn:aws:kms:us-west-2:<account_id>:key/*',
'arn:aws:s3:::bucket]}
然后我有这个代码:
for value in policy:
Resource = value['Resource']
for resource in Resources:
if resource == 'arn:aws:s3:::<bucket>'
return True
如果有多个 S3 操作被发送到策略,我想做这样的事情....
if resource =='arn:aws:s3:::<regular expression>'
正则表达式为任意字符和整数。这可能吗?
你可以做到:
import re
if re.match(r'arn:aws:s3:::.*$', resource):
...
.
表示任意字符,*
表示零个或多个,$
表示到字符串结尾。
如果您只需要字母和数字而不是符号,您可以将 .
替换为 [a-zA-Z0-9]
。
如果您想要至少一个字符(一个或多个),您也可以将 *
替换为 +
我正在编写一个 python 脚本来验证 AWS IAM 策略并想知道如何在这个用例中使用正则表达式。
例如我有这个政策:
{'Action': ['s3:PutObject', 'kms:GenerateKey'],
'Effect': 'Allow'
'Resource': ['arn:aws:kms:us-west-2:<account_id>:key/*',
'arn:aws:s3:::bucket]}
然后我有这个代码:
for value in policy:
Resource = value['Resource']
for resource in Resources:
if resource == 'arn:aws:s3:::<bucket>'
return True
如果有多个 S3 操作被发送到策略,我想做这样的事情....
if resource =='arn:aws:s3:::<regular expression>'
正则表达式为任意字符和整数。这可能吗?
你可以做到:
import re
if re.match(r'arn:aws:s3:::.*$', resource):
...
.
表示任意字符,*
表示零个或多个,$
表示到字符串结尾。
如果您只需要字母和数字而不是符号,您可以将 .
替换为 [a-zA-Z0-9]
。
如果您想要至少一个字符(一个或多个),您也可以将 *
替换为 +