tnblog
首页
视频
资源
登录

go-regex

4655人阅读 2022/4/27 22:05 总访问:131768 评论:0 收藏:0 手机
分类: golang
  1. package main
  2. import (
  3. "fmt"
  4. "regexp"
  5. )
  6. // 正则表达式
  7. // 1. 匹配字符
  8. // 2. 替换字符
  9. // 3. 查找字符
  10. // https://pkg.go.dev/regexp#section-documentation
  11. func main() {
  12. fmt.Println("1. 匹配字符")
  13. matchFun()
  14. fmt.Println("2. 查找字符")
  15. replaceFun()
  16. fmt.Println("3. 查找字符")
  17. compileFun()
  18. fmt.Println("4. 其他")
  19. compileOtherFun()
  20. }
  21. // 1. 匹配字符
  22. func matchFun() {
  23. //目标源是字节
  24. matched, err := regexp.Match("^abc.*z$", []byte("abcdefghwz"))
  25. fmt.Println(matched, err)
  26. //目标源是string
  27. matched, err = regexp.MatchString("^abc.*z$", "abcdedafgz")
  28. fmt.Println(matched, err)
  29. }
  30. func replaceFun() {
  31. re, _ := regexp.Compile("f([a-z]+)")
  32. fmt.Println("1. ", string(re.ReplaceAll([]byte("this is foo, that is func "), []byte("x"))))
  33. fmt.Println("2. ", string(re.ReplaceAllString("this is foo, that is func ", "x")))
  34. }
  35. //查找字符
  36. func compileFun() {
  37. re := regexp.MustCompile(".com")
  38. fmt.Println("1:" + re.FindString("www.baidu.com"))
  39. fmt.Println("2:" + re.FindString("www.wangyi.com"))
  40. fmt.Println("3:" + re.FindString("www.baidu.org"))
  41. }
  42. func compileOtherFun() {
  43. re, _ := regexp.Compile("f([a-z]+)")
  44. fmt.Println("1. ", re.Match([]byte("foo")))
  45. fmt.Println("2. ", re.MatchString("foo"))
  46. //只匹配一次
  47. fmt.Println("3. ", re.FindString("foo, func"))
  48. //返回查找到的所有索引
  49. fmt.Println("4. ", re.FindStringIndex("foo, func"))
  50. //只匹配一次, 返回的结果中 , 索引为0的值 是整个匹配串的值, 第二个是子表达式的值,如果没有子表达式, 则不检测
  51. fmt.Println("5. ", re.FindStringSubmatch("foo, func"))
  52. // n为-1的时候, 匹配所有符合条件的 字符串, n不为-1的时候表示匹配n次
  53. fmt.Println("6. ", re.FindAllString("foo func fan ", -1))
  54. fmt.Println("7. ", re.FindAllString("foo func fan ", 2))
  55. }
评价
无论这个世界对你怎样,都请你一如既往的努力、勇敢、充满希望。
排名
25
文章
22
粉丝
5
评论
7
C# string 和String 的区别
剑轩 : 所以区别主要在哪里呢....
markdown 初步学习
剑轩 : 哇哦,真的喜欢你这个个性签名,很不错
pythoic 写法
剑轩 : 新年快乐啊
python拼接字符串八种
剑轩 : 手动点赞+1
python拼接字符串八种
雨雨雨雨雨辰 : 手动点赞
pythoic 写法
瑾语 : 你好
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术