标签 "首尾" 下的文章

这段时间工作的需求多了不少,文章开始越来越水了。

实在抱歉,时间真的很仓促。

本次分享的是一个函数——根据首尾字符串截取中间的字符串。

虽然这个函数非常简单,但是真的很好用!也很常用!

比如 “我今天真的很高兴” 这句话,要把 今天 截取出来:

常规的方式是 strings.Index 出位置,然后根据字符串(今天)的长度,返回词的内容。

如果是 HTML 呢?比如获取链接地址:

<a href='https://m.baidu.com/'>跳转到百度</a>

这个时候你还想用 strings.Index 吗?

我是不想用的!太麻烦了。而用我的这个函数,就很方便了!

直接 StringCut(s, "href='", "'", false) 就可以轻松拿到链接地址!非常通用,无需关心越界问题。

func StringCut(s, begin, end string, withBegin bool) string {
    beginPos := strings.Index(s, begin)
    if beginPos == -1 {
        return ""
    }
    s = s[beginPos+len(begin):]
    endPos := strings.Index(s, end)
    if endPos == -1 {
        return ""
    }
    result := s[:endPos]
    if withBegin {
        return begin + result
    } else {
        return result
    }
}

附带单元测试,包含了很多例子,如果还有特殊情况,欢迎补充(找 bug 哈哈):

阅读全文