首页 > 解决方案 > 去正则表达式否定回顾

问题描述

我有一个适用于 PCRE 的正则表达式,可以很好地检测某个单词之前没有任何特殊字符。例如,检测 T4 可以很好地与(?!\S)T4(?!\S).

匹配:T4

不匹配:^T4=T4

但是,我不确定 Go Regex 是否支持负面观察。有没有可以在 Go Regex 中使用的等效项?

标签: regexgo

解决方案


Golang 正则表达式通常不支持负面的lookbehinds 和lookarounds。

您可以使用以下方法检查空格或字符串的开头/结尾之间是否有单词

pattern := regexp.MustCompile(`(?:\s|^)T4(?:\s|$)`)

在哪里

  • (?:\s|^)- 匹配空格或字符串开头的非捕获组
  • T4 - 文字子串
  • (?:\s|$)- 匹配空格或字符串结尾的非捕获组。

推荐阅读