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

Golang正则表达式:如何匹配不以指定字符串结尾的内容

解决Golang正则匹配不以特定字符串结尾的问题

因为Golang采用的RE2正则引擎不支持负向前瞻,要实现匹配不以NOT_ENDING_WITH_THIS结尾的字符串,可以用两种方案:

方案一:使用正则表达式(适用于固定长度后缀)

RE2支持固定长度的负向后断言,结合两种场景编写正则:

  • 字符串长度小于目标后缀长度,直接匹配
  • 字符串长度足够,但结尾不是目标后缀

假设NOT_ENDING_WITH_THIS的长度为20,对应的正则为:

^(?:.{0,19}$|.*(?<!NOT_ENDING_WITH_THIS))$

如果后缀长度不固定,这种方式会受限。

方案二:结合字符串函数+简单正则

更通用的方式是通过逻辑取反实现:

  1. 用strings.HasSuffix(s, "NOT_ENDING_WITH_THIS")判断字符串是否属于要排除的范围
  2. 若返回false,则该字符串就是需要匹配的目标

如果一定要用纯正则逻辑,也可以先匹配所有以目标后缀结尾的字符串(即你给出的^(.*NOT_ENDING_WITH_THIS)$),再在代码中对匹配结果取反。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 18:55:29