返回
北京兄弟连IT
置顶
该校与厚学网暂未合作,平台不保证课程的真实有效性,如有侵权等争议,请及时与厚学网联系处理
招生热线:400-656-1390

学校地址:北京市昌平区回龙观文华西路育荣教育园区兄弟连IT教育

兄弟连Go语言培训GO案例​正则表达式

105 2018-08-01 10:40:00

学习笔记

  兄弟连Go语言培训课程体系设计架构包括了区块链的基础语言Go语言、区块链后端技术体系、区块链公链、区块链分布式应用开发等内容讲解,以及到最后的面试指导和项目实战。课程由清华微软谷歌团队精心打造,历时半年时间共同研发而出。

  兄弟连Go语言培训清华尹成带你实战GO案例(64)Go正则表达式

  Go正则表达式

  Go内置了对正则表达式的支持,这里是一般的正则表达式常规用法的例子。

  packagemain

  import"bytes"

  import"fmt"

  import"regexp"

  funcmain(){

  //测试模式是否匹配字符串,括号里面的意思是

  //至少有一个a-z之间的字符存在

  match,_:=regexp.MatchString("p([a-z]+)ch","peach")

  fmt.Println(match)

  //上面我们直接使用了字符串匹配的正则表达式,

  //但是对于其他的正则匹配任务,你需要使用

  //`Compile`来使用一个优化过的正则对象

  r,_:=regexp.Compile("p([a-z]+)ch")

  //正则结构体对象有很多方法可以使用,比如上面的例子

  //也可以像下面这么写

  fmt.Println(r.MatchString("peach"))

  //这个方法检测字符串参数是否存在正则所约束的匹配

  fmt.Println(r.FindString("peachpunch"))

  //这个方法查找第一次匹配的索引,并返回匹配字符串

  //的起始索引和结束索引,而不是匹配的字符串

  fmt.Println(r.FindStringIndex("peachpunch"))

  //这个方法返回全局匹配的字符串和局部匹配的字符,比如

  //这里会返回匹配`p([a-z]+)ch`的字符串

  //和匹配`([a-z]+)`的字符串

  fmt.Println(r.FindStringSubmatch("peachpunch"))

  //和上面的方法一样,不同的是返回全局匹配和局部匹配的

  //起始索引和结束索引

  fmt.Println(r.FindStringSubmatchIndex("peachpunch"))

  //这个方法返回所有正则匹配的字符,不仅仅是个

  fmt.Println(r.FindAllString("peachpunchpinch",-1))

  //这个方法返回所有全局匹配和局部匹配的字符串起始索引

  //和结束索引

  fmt.Println(r.FindAllStringSubmatchIndex("peachpunchpinch",-1))

  //为这个方法提供一个正整数参数来限制匹配数量

  fmt.Println(r.FindAllString("peachpunchpinch",2))

  //上面我们都是用了诸如`MatchString`这样的方法,其实

  //我们也可以使用`[]byte`作为参数,并且使用`Match`

  //这样的方法名

  fmt.Println(r.Match([]byte("peach")))

  //当使用正则表达式来创建常量的时候,你可以使用`MustCompile`

  //因为`Compile`返回两个值

  r=regexp.MustCompile("p([a-z]+)ch")

  fmt.Println(r)

  //regexp包也可以用来将字符串的一部分替换为其他的值

  fmt.Println(r.ReplaceAllString("apeach",""))

  //`Func`变量可以让你将所有匹配的字符串都经过该函数处理

  //转变为所需要的值

  in:=[]byte("apeach")

  out:=r.ReplaceAllFunc(in,bytes.ToUpper)

  fmt.Println(string(out))

  }

  运行结果

  true

  true

  peach

  [05]

  [peachea]

  [0513]

  [peachpunchpinch]

  [[0513][61179][12171315]]

  [peachpunch]

  true

  p([a-z]+)ch

  a

  aPEACH

  

文中图片素材来源网络,如有侵权请联系删除
来源:北京兄弟连IT
热门课程 全部课程

热门动态

申请免费试听

只要一个电话

我们为您免费回电

立即申请