尝试在 Go 中使用正则表达式时,遇到错误:
error parsing regexp: invalid or unsupported Perl syntax: (?!
此错误特别发生在以下情况正则表达式:
regexp.MustCompile("^(?!On.*On\s.+?wrote:)(On\s(.+?)wrote:)$")
出现此问题是因为 Go 正则表达式不支持环视,与 Perl 不同,环视是检查周围文本而不消耗它的断言。
要解决此限制,请使用不同的方法:
首先,编译两个单独的常规表达式:
first := regexp.MustCompile(`^On\s(.+?)wrote:$`) second := regexp.MustCompile(`^On.*On\s.+?wrote:`)
然后,执行以下步骤:
或者,您可以使用可选的捕获组来简化过程。 :
regex := regexp.MustCompile(`^On(.*On)?\s.+?wrote:`)
检查匹配项,如果满足以下条件则返回 true:
否则,返回 false。
以上是如何解决 Go Regex 中的环视问题?的详细内容。更多信息请关注PHP中文网其他相关文章!