EC2 实例 ID 的正则表达式

Mer*_*aju 2 regex amazon-ec2 python-3.x

我需要一个能够匹配 AWS EC2 实例 ID 的正则表达式。实例 ID 具有以下条件:

  • 可以是 8 或 17 个字符
  • 应该以 i- 开头
  • 后跟 af 或 0-9

有效实例 ID 为:i-ed3a2f7ai-096e0bec99b504f82i-0cad9e810fbd12f4f

无效的实例 ID 是e123g12i-1fz5645m

我能够创建以下正则表达式i-[a-f0-9](?:.{7}|.{16})$,但它也接受i-abcdeffh. h不在之间a-f

如果有人能帮助我,我将不胜感激

Nic*_*ick 5

您可以创建一个正则表达式来匹配 8 个字符的 ID 值,并在其后添加可选的 9 个字符:

^i-[a-f0-9]{8}(?:[a-f0-9]{9})?$
Run Code Online (Sandbox Code Playgroud)

这将匹配:

  • ^: 行首
  • i-: 那些角色i-
  • [a-f0-9]{8}: 8 个十六进制数字
  • (?:[a-f0-9]{9})?:可选的附加 9 个十六进制数字
  • $: 行结束

regex101 演示

请注意,我们使用行首和行尾锚点来防止匹配 ID 值之前或之后的其他字符。此正则表达式将匹配8 或 17 个字符 ID 值,而不是 12、11 或 5 等。