You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Perl风格正则从FQDN提取域名(适配Terraform regex函数)

解决方案

正则表达式(无捕获组,直接返回目标字符串)

使用正向预查匹配第一个子域名之后的所有内容,正则如下:

(?<=^[^.]+\.).+$

正则解释

  • (?<=^[^.]+\.):正向断言,确保匹配内容的左侧是从字符串开头到第一个点的完整子域名(^[^.]+匹配第一个点前的所有非点字符,\.匹配第一个点)
  • .+$:匹配第一个点之后的所有字符直到字符串结尾,这就是需要保留的域名部分

Terraform 使用示例

# 第一个示例
output "domain1" {
  value = regex("(?<=^[^.]+\.).+$", "api.mydiomain.org.local")
}
# 输出: mydiomain.org.local

# 第二个示例
output "domain2" {
  value = regex("(?<=^[^.]+\.).+$", "app.stg.mydiomain.org.local")
}
# 输出: stg.mydiomain.org.local

# 第三个示例
output "domain3" {
  value = regex("(?<=^[^.]+\.).+$", "uses.anotherdomain.uk")
}
# 输出: anotherdomain.uk

备选方案(使用捕获组)

如果偏好捕获组的方式,也可以用下面的正则,此时Terraform会返回一个列表,取第一个元素即可:

^[^.]+\.(.*)$

使用示例:

output "domain" {
  value = regex("^[^.]+\.(.*)$", "api.mydiomain.org.local")[0]
}

内容的提问来源于stack exchange,提问作者MacUsers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 20:12:35