登录
首页 >  Golang >  Go问答

在正则表达式中匹配字符串的开头但不包括结尾

来源:stackoverflow

时间:2024-03-22 17:12:33 308浏览 收藏

为了在正则表达式中匹配字符串开头但不包括结尾,可以使用多重否定字符。对于本文所述的情况,可使用以下表达式: ^abc4(?:.*(?:[^p].{2}|p[^r].{1}|pr[^e])|.{0,2})$

问题内容

我有一些如下所示的字符串:

abc4back
abc4backpre
abc4front
abc4frontpre
abc3side
abc3sidepre
xyz4over
xyz4overpre

我只想得到那些只有“abc4”但没有“pre”的东西。到目前为止,我的正则表达式是:

abc4.*(?!pre)

但是,当我运行此命令时,出现错误:

解析正则表达式时出错:无效或不受支持的 perl 语法:`(?!`

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

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


解决方案


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

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

Regex Demo

好了,本文到此结束,带大家了解了《在正则表达式中匹配字符串的开头但不包括结尾》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>