我试图弄清楚如何使用Python从AWS主机名中提取可用区(AZ)。我知道如何提取主机名的开头或结尾,但不提取中间名。示例:
ec2-1-1-1-1.us-west-2.compute.amazonaws.com.
ec2-2-2-2-2.us-gov-west-1.compute.amazonaws.com.
ec2-3-3-3-3.ap-southeast-2.compute.amazonaws.com.
对于不熟悉AWS的用户,AZ是主机名“ us-west-2”,“ us-gov-west-1”,“ ap-southeast-2”的中间部分。格式在各个区域都是一致的。
先谢谢了。
答案 0 :(得分:0)
您可以使用此简单的正则表达式来选择您想要的名称。
^[^.]+\.([^.]+)
要捕获AZ名称,您需要捕获第1组文本。
提取名称的Python代码,
import re
arr = ['ec2-1-1-1-1.us-west-2.compute.amazonaws.com.','ec2-2-2-2-2.us-gov-west-1.compute.amazonaws.com.','ec2-3-3-3-3.ap-southeast-2.compute.amazonaws.com.']
for s in arr:
match = re.search(r'^[^.]+\.([^.]+)', s)
print (s + ' --> ' + match.group(1))
这是输出,
ec2-1-1-1-1.us-west-2.compute.amazonaws.com. --> us-west-2
ec2-2-2-2-2.us-gov-west-1.compute.amazonaws.com. --> us-gov-west-1
ec2-3-3-3-3.ap-southeast-2.compute.amazonaws.com. --> ap-southeast-2