【发布时间】:2019-03-09 22:42:55
【问题描述】:
我有以下正则表达式^http:\/\/(?!www\.)(.*)$
预期行为:
http://example.com - Match
http://www.example.com - Does not match
看起来golang 不支持负前瞻。如何重写此 RegEx 以在 golang 上工作?
更新
我没有使用 golang 编码,我使用的是Traefik,它接受正则表达式(golang 风格)作为配置值,所以基本上我有这个:
regex = "^https://(.*)$"
replacement = "https://www.$1"
我想要的是始终将 www. 添加到 URL,但如果 URL 已经包含它,则 NOT,否则它将变为 www.www。 *
【问题讨论】:
-
我对golang一无所知,这就是为什么这是一条评论,但你不能在if语句中匹配
/^http:\/\/www\./,如果不匹配,请查找http://example.com -
更多信息请参考以下link
-
我有同样的问题,我使用 re2 作为正则表达式引擎,没有 Golang 的完整表达能力(Terraform 的
regex()函数。)尝试在 Terraform 0.13 中使用变量验证以确保用户不'不传递以某些单词开头或结尾的字符串——即,正则表达式不匹配 string(不仅仅是字符)。