登录
首页 >  Golang >  Go问答

Golang里的正则表达式疑问

来源:stackoverflow

时间:2024-02-08 20:27:22 141浏览 收藏

本篇文章向大家介绍《Golang里的正则表达式疑问》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

我正在尝试创建一个正则表达式来解析特定字符串。

当前字符串是 abcd_1.263.0.15-8zz00df.yml,我只想从中解析 1.263.0.15-8zz00df

已经尝试过这个表达式 "_\K.*(?=\.)" 但它在 Golan 中不起作用并给我模式错误。有人可以帮忙解决这个问题吗?


正确答案


go 使用 re2 正则表达式引擎,不支持 lookaheadslookbehinds 和其他 pcre 功能,例如 \k

查看不同正则表达式引擎的 comparison

但是您可以使用此正则表达式:

[^_-]+-[^.]+

请参阅此 demo

解释:

[^_-]+   # a character that is not "_" or "-", one or more times
-        # a literal "-"
[^.]+    # a character that is not a dot, one or more times

仅用一句话重新发布 @mkopriva 的片段之一,

并非所有事情都需要使用正则表达式来完成:

s := "abcd_1.263.0.15-8zz00df.yml"

    if i := strings.IndexByte(s, '_'); i > -1 {
        s = s[i+1:]
    }
    if i := strings.LastIndexByte(s, '.'); i > -1 {
        s = s[:i]
    }

    fmt.Println(s)

playground

理论要掌握,实操不能落!以上关于《Golang里的正则表达式疑问》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

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