• go介绍32——字符串操作


    字符串操作

    1. package main
    2. import (
    3. "fmt"
    4. "regexp"
    5. )
    6. func main() {
    7. buf := `
    8. Go语言标准库文档中文版 | Go语言中文网 | Golang中文社区 | Golang中国
    9. 测试1
    10. 测试2
    11. 你好
    12. 麦克
  • 测试3
  • 测试4
  • </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="36"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">
  • `
  • //1. 解析正则表达式
  • //reg := regexp.MustCompile(`
    (.*)
    `) //+表示前一个字符1次或多次
  • reg := regexp.MustCompile(`
    (?s:(.*?))
    `
    )
  • if reg == nil {
  • fmt.Println("reg = ", reg)
  • return
  • }
  • //2. 提取关键信息
  • s := reg.FindAllStringSubmatch(buf, -1) //-1表示匹配所有
  • fmt.Println("s = ", s)
  • //3. 过滤
  • for _, data := range s {
  • //fmt.Println("data[0] = ", data[0]) //带标签
  • fmt.Println("data[1] = ", data[1]) //不带标签
  • }
  • }
  • 字符串转换

    1. package main
    2. import (
    3. "fmt"
    4. "strconv"
    5. )
    6. func main() {
    7. //1. 字符串追加
    8. //转换位字符串后追加到字节数组
    9. slice := make([]byte, 0, 1024)
    10. slice = strconv.AppendBool(slice, true)
    11. //第二个数为要追加的数,第三个数指定十进制方式追加
    12. slice = strconv.AppendInt(slice, 1234, 10)
    13. slice = strconv.AppendQuote(slice, "go")
    14. fmt.Println("slice = ", string(slice))
    15. //bool转换为字符串
    16. var str string
    17. str = strconv.FormatBool(false)
    18. //float转换为字符串
    19. str = strconv.FormatFloat(3.1415, 'f', -1, 64)
    20. //整型转字符串
    21. str = strconv.Itoa(1234)
    22. fmt.Println("str = ", str)
    23. //字符串转其他类型
    24. flag, err := strconv.ParseBool("true")
    25. if err == nil {
    26. fmt.Println("flag = ", flag)
    27. } else {
    28. fmt.Println("err = ", err)
    29. }
    30. //字符串转换为整型
    31. a, err := strconv.Atoi("123")
    32. if err == nil {
    33. fmt.Println("a = ", a)
    34. } else {
    35. fmt.Println("err = ", err)
    36. }
    37. }

    正则表达式1

    1. package main
    2. import (
    3. "fmt"
    4. "regexp"
    5. )
    6. func main() {
    7. buf := "abc azc a2c qwe 888 ip9 bn5"
    8. //1.解析规则:会解析正则表达式 如果成功返回解析器
    9. //reg := regexp.MustCompile(`a.c`) //a开头 中间任意字符 c结尾
    10. //reg := regexp.MustCompile(`a[0-9]c`)
    11. reg := regexp.MustCompile(`a\dc`)
    12. if reg == nil {
    13. fmt.Println("reg = ", reg)
    14. return
    15. }
    16. //2.根绝规则提取关键信息
    17. s := reg.FindAllStringSubmatch(buf, -1) //-1表示匹配所有
    18. fmt.Println("s = ", s)
    19. }

    正则表达式2

    1. package main
    2. import (
    3. "fmt"
    4. "regexp"
    5. )
    6. func main() {
    7. buf := "2.13 12.12 2 1.2 5.6 12 acb"
    8. //1. 解析正则表达式
    9. reg := regexp.MustCompile(`\d+\.\d+`) //+表示前一个字符1次或多次
    10. if reg == nil {
    11. fmt.Println("reg = ", reg)
    12. return
    13. }
    14. //2. 提取关键信息
    15. s := reg.FindAllStringSubmatch(buf, -1) //-1表示匹配所有
    16. fmt.Println("s = ", s)
    17. }

    正则表达式3

    1. package main
    2. import (
    3. "fmt"
    4. "regexp"
    5. )
    6. func main() {
    7. buf := `
    8. Go语言标准库文档中文版 | Go语言中文网 | Golang中文社区 | Golang中国
    9. 测试1
    10. 测试2
    11. 你好
    12. 麦克
  • 测试3
  • 测试4
  • </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="36"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">
  • `
  • //1. 解析正则表达式
  • //reg := regexp.MustCompile(`
    (.*)
    `) //+表示前一个字符1次或多次
  • reg := regexp.MustCompile(`
    (?s:(.*?))
    `
    )
  • if reg == nil {
  • fmt.Println("reg = ", reg)
  • return
  • }
  • //2. 提取关键信息
  • s := reg.FindAllStringSubmatch(buf, -1) //-1表示匹配所有
  • fmt.Println("s = ", s)
  • //3. 过滤
  • for _, data := range s {
  • //fmt.Println("data[0] = ", data[0]) //带标签
  • fmt.Println("data[1] = ", data[1]) //不带标签
  • }
  • }
  • 相关阅读:
    【小沐学写作】程序员必备技能:在线协作文档汇总
    M1芯片使用android-emulator-m1-preview模拟器提示INSTALL_FAILED_INSUFFICIENT_STORAGE 解决办法
    hadoop生态圈面试精华之zookeeper(二)
    hutool实现文件上传与下载
    el-upload拍照上传多个文件报错 ERR_UPLOAD_FILE_CHANGED问题
    通过现实生活中一个例子来理解 JavaScript Promise
    Radare2 框架介绍及使用
    【算法系列 | 7】深入解析查找算法之—布隆过滤器
    别再吐槽大学教材了,来看看这些网友强推的数学神作!
    idea右边找不到maven窗口(Idea_最右侧常用栏中没有Maven选项)
  • 原文地址:https://blog.csdn.net/www_dong/article/details/127894023