如何为 AWS 资源制作正则表达式
How to make a Regex for AWS resource
我想要一个匹配以下 AWS 资源的正则表达式:
- 实例 ID (i-XXXXXX)
- spotRequestId (sir-XXXX)
- 图片 ID (ami-XXXX)
- volumeId (vol-XXXXX)
- snapshotId (snap-XXXX)
- 私有IP (123.231.231.231)
此外,我希望正则表达式能够匹配以下格式的资源列表:
resourceId, resourceId, ....
列表不是强制性的,ID 之间的空格也不是强制性的。
这是我试过的方法:
(((i|sir|ami|snap|vol|ssi)-[a-zA-Z0-9]+)|((?:[0-9]{1,3}\.){3}[0-9]{1,3}))+ *,* *
您可以使用
^(?:(?:i|sir|ami|snap|vol|ssi|Ipv4)(?:-[a-zA-Z0-9]+)?\b|(?:[0-9]{1,3}\.){3}[0-9]{1,3})(?:\s*,\s*(?:(?:i|sir|ami|snap|vol|ssi|Ipv4)(?:-[a-zA-Z0-9]+)?\b|(?:[0-9]{1,3}\.){3}[0-9]{1,3}))*$
模式匹配
^
字符串开头
(?:
非捕获组
(?:i|sir|ami|snap|vol|ssi|Ipv4)
匹配 1 个选项
(?:-[a-zA-Z0-9]+)?\b
可选择匹配 -
和 1+ 次列出的任何
|
或
(?:[0-9]{1,3}\.){3}[0-9]{1,3}
匹配 4 次由 .
分隔的 1-3 位数字
)
关闭非捕获组
(?:
非捕获组
\s*,\s*
匹配可选空白字符之间的逗号
(?:(?:i|sir|ami|snap|vol|ssi|Ipv4)(?:-[a-zA-Z0-9]+)?\b|(?:[0-9]{1,3}\.){3}[0-9]{1,3})
与第一部分相同的模式
)*
关闭非捕获组并可选择重复
$
字符串结束
我想要一个匹配以下 AWS 资源的正则表达式:
- 实例 ID (i-XXXXXX)
- spotRequestId (sir-XXXX)
- 图片 ID (ami-XXXX)
- volumeId (vol-XXXXX)
- snapshotId (snap-XXXX)
- 私有IP (123.231.231.231)
此外,我希望正则表达式能够匹配以下格式的资源列表:
resourceId, resourceId, ....
列表不是强制性的,ID 之间的空格也不是强制性的。
这是我试过的方法:
(((i|sir|ami|snap|vol|ssi)-[a-zA-Z0-9]+)|((?:[0-9]{1,3}\.){3}[0-9]{1,3}))+ *,* *
您可以使用
^(?:(?:i|sir|ami|snap|vol|ssi|Ipv4)(?:-[a-zA-Z0-9]+)?\b|(?:[0-9]{1,3}\.){3}[0-9]{1,3})(?:\s*,\s*(?:(?:i|sir|ami|snap|vol|ssi|Ipv4)(?:-[a-zA-Z0-9]+)?\b|(?:[0-9]{1,3}\.){3}[0-9]{1,3}))*$
模式匹配
^
字符串开头(?:
非捕获组(?:i|sir|ami|snap|vol|ssi|Ipv4)
匹配 1 个选项(?:-[a-zA-Z0-9]+)?\b
可选择匹配-
和 1+ 次列出的任何|
或(?:[0-9]{1,3}\.){3}[0-9]{1,3}
匹配 4 次由.
分隔的 1-3 位数字
)
关闭非捕获组(?:
非捕获组\s*,\s*
匹配可选空白字符之间的逗号(?:(?:i|sir|ami|snap|vol|ssi|Ipv4)(?:-[a-zA-Z0-9]+)?\b|(?:[0-9]{1,3}\.){3}[0-9]{1,3})
与第一部分相同的模式
)*
关闭非捕获组并可选择重复$
字符串结束