【问题标题】:Go Regex negative lookbehind去正则表达式否定回顾
【发布时间】:2021-03-21 00:02:24
【问题描述】:

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

匹配:T4

不匹配:^T4=T4

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

【问题讨论】:

  • 如果您只检查单词是否在空格或字符串的开头/结尾之间,则不需要这些外观,只需使用(?:\s|^)T4(?:\s|$)
  • 你是对的。这绝对有效。谢谢!
  • “我不确定 Go Regex 是否支持负向查找”——它们不支持。这在 SO 上有广泛的介绍。

标签: regex go


【解决方案1】:

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

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

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

在哪里

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-22
    • 2018-01-02
    • 2012-02-27
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    相关资源
    最近更新 更多