问题描述
strings.Trim和strings.TrimLeft在分割带有“https://”的字符串时,会多分割一些字符,对分割结果造成影响。
推测原因:
TrimLeft 只针对utf-8字符进行处理,相关处理可能出现问题。// todo源码没看太懂,哪位大佬明白的可以帮忙解释下
解决办法
测试代码如下:
package main
import (
"fmt"
"strings"
)
// TrimLeft和Trim分割字符串时,对于有"/"的字符串切割会出现问题
// 切割前缀使用TrimPrefix,切割后缀使用TrimSuffix进行代替
func main() {
Url := "https://www.baidu.com/material/list"
fmt.Println(strings.TrimLeft(Url, "https://www.baidu.com")) // erial/list
fmt.Println(strings.TrimPrefix(Url, "https://www.baidu.com")) // /material/list
Url2 := ":www.baidu.com/material/list"
fmt.Println(strings.Trim(Url, "https://www.baidu.com")) // erial/l
fmt.Println(strings.Trim(Url2, ":www.baidu.com")) // /material/list
s := "Goodbye,, world!"
fmt.Println(strings.TrimSuffix(s, ", world!")) // Goodbye,
}
版权声明:本文为weixin_43851310原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。