字符串操作
package mainimport ("fmt""regexp"
)func main() {buf := `
">
测试1
测试2
你好
麦克
测试3
测试4
`//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]) //不带标签}
}
字符串转换
package mainimport ("fmt""strconv"
)func main() {//1. 字符串追加//转换位字符串后追加到字节数组slice := make([]byte, 0, 1024)slice = strconv.AppendBool(slice, true)//第二个数为要追加的数,第三个数指定十进制方式追加slice = strconv.AppendInt(slice, 1234, 10)slice = strconv.AppendQuote(slice, "go")fmt.Println("slice = ", string(slice))//bool转换为字符串var str stringstr = strconv.FormatBool(false)//float转换为字符串str = strconv.FormatFloat(3.1415, 'f', -1, 64)//整型转字符串str = strconv.Itoa(1234)fmt.Println("str = ", str)//字符串转其他类型flag, err := strconv.ParseBool("true")if err == nil {fmt.Println("flag = ", flag)} else {fmt.Println("err = ", err)}//字符串转换为整型a, err := strconv.Atoi("123")if err == nil {fmt.Println("a = ", a)} else {fmt.Println("err = ", err)}
}
正则表达式1
package mainimport ("fmt""regexp"
)func main() {buf := "abc azc a2c qwe 888 ip9 bn5"//1.解析规则:会解析正则表达式 如果成功返回解析器//reg := regexp.MustCompile(`a.c`) //a开头 中间任意字符 c结尾//reg := regexp.MustCompile(`a[0-9]c`)reg := regexp.MustCompile(`a\dc`)if reg == nil {fmt.Println("reg = ", reg)return}//2.根绝规则提取关键信息s := reg.FindAllStringSubmatch(buf, -1) //-1表示匹配所有fmt.Println("s = ", s)
}
正则表达式2
package mainimport ("fmt""regexp"
)func main() {buf := "2.13 12.12 2 1.2 5.6 12 acb"//1. 解析正则表达式reg := regexp.MustCompile(`\d+\.\d+`) //+表示前一个字符1次或多次if reg == nil {fmt.Println("reg = ", reg)return}//2. 提取关键信息s := reg.FindAllStringSubmatch(buf, -1) //-1表示匹配所有fmt.Println("s = ", s)
}
正则表达式3
package mainimport ("fmt""regexp"
)func main() {buf := `
">
测试1
测试2
你好
麦克
测试3
测试4
`//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]) //不带标签}
}