登录
首页 >  Golang >  Go问答

将 PERL 的正则表达式转换为 Golang 的 RE2 方式

来源:stackoverflow

时间:2024-02-24 20:12:21 360浏览 收藏

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《将 PERL 的正则表达式转换为 Golang 的 RE2 方式》,涉及到,有需要的可以收藏一下

问题内容

我知道 Golang 不支持环视,但我无法理解转换。

正则表达式:^(?!d-)([\da-zA-Z]+)([-][\da-zA-Z])$


解决方案


环顾四周后,我认为@tshiono 的想法是最有意义的,但正则表达式与我的预期不符。 我最终得到了这样的结果

package main

import (
  "fmt"
  "regexp"
)

func main() {
    st := []string{
       "test-adccount",
       "s-asdgaysdtuaystdua",
       "2342348jtdstyfu",
       "kdshkjfshdkfjhd-jkshdfjkshdf",
       "uysiufysdusidyf-jsdkhfjksdhf",
       "ausyduaysidyaisyd",
       "2abc-f",
       "d-23423423",
       "-iasodaisdyauiysd",
       "sudyfisdufy82|ldjf",
       "klskdjfsd898883---sdfkjskdfjsld",
   }

for _, s := range st {
    r1 := regexp.MustCompile(`^([\da-zA-Z]+)([\da-zA-Z-]+)$`)
    r2 := regexp.MustCompile(`^(d-).+$`)

    if r1.MatchString(s) && !r2.MatchString(s) {
        fmt.Println(fmt.Sprintf("%s  :: matched", s))
    } else {
        fmt.Println(fmt.Sprintf("%s :: does not matched", s))
    }
  }
}

https://play.golang.org/p/j-7INwyDwU4

以上就是《将 PERL 的正则表达式转换为 Golang 的 RE2 方式》的详细内容,更多关于的资料请关注golang学习网公众号!

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