首页 > 解决方案 > 匹配字符串的开头并排除正则表达式中的字符串结尾

问题描述

我有一些如下字符串:

abc4back
abc4backpre
abc4front
abc4frontpre
abc3side
abc3sidepre
xyz4over
xyz4overpre

我想得到那些只有“abc4”但没有“pre”的。到目前为止,我的正则表达式是:
abc4.*(?!pre).

但是,当我运行它时,我得到了错误:
error parsing regexp: invalid or unsupported Perl syntax: `(?!` .

我现在知道这是因为 go 不支持前瞻。

但是,我不知道应该使用什么表达式来代替?!. 有谁知道什么会起作用?

标签: regexgo

解决方案


你可以通过多重否定字符来做到这一点

^abc4(?:.*(?:[^p].{2}|p[^r].{1}|pr[^e])|.{0,2})$

正则表达式演示


推荐阅读