regex Terraform正则表达式提取部分url

csga3l58  于 2023-02-05  发布在  其他
关注(0)|答案(2)|浏览(126)

我有一个网址

postgres://some-url.com:23244/users-pool?sslmode=require

我基本上需要匹配//:之间的所有内容。所以在本例中我需要some-url.com。我正在尝试使用这个正则表达式/(?<=\/\/)(.*?)(?=\:)/gm,它在在线regex工具上工作。但是当我尝试在TF上这样做时

regex("postgres://some-url.com:23244/users-pool?sslmode=require", "(?<=//)(.*?)(?=\:)")

我越来越

│
│   on <console-input> line 1:
│   (source code not available)
│
│  Error: Invalid escape sequence
│
│   on <console-input> line 1:
│   (source code not available)
│
│ The symbol "/" is not a valid escape sequence selector.
╵

╷
│ Error: Invalid escape sequence
│
│   on <console-input> line 1:
│   (source code not available)
│
│ The symbol "/" is not a valid escape sequence selector.```

How can I do this on Terraform? Appreciate the help
axr492tv

axr492tv1#

模式应为第一个,而不是第二个:

regex("//(.*):", "postgres://some-url.com:23244/users-pool?sslmode=require")
kq0g1dla

kq0g1dla2#

如果它应该在//和第一次出现的:之间,则可以使用求反字符类,不匹配其间的冒号:

//([^:]*):

参见regex101 demo

相关问题