Golang字符串过滤

常用的字符串过滤方法
  1. Trim 从两端过滤
  2. TrimSpace 过滤空字符串
  3. TrimLeft 过滤左边的
  4. TrimRight 过滤右边的
package main

import (
	"fmt"
	"strings"
)

var str = " 你好(hello)Go "

func main() {
	fmt.Println(len(str))                         // 17
	fmt.Println(len(strings.Trim(str, " ")))      //15
	fmt.Println(len(strings.TrimSpace(str)))      // 15
	fmt.Println(len(strings.TrimLeft(str, " ")))  // 16
	fmt.Println(len(strings.TrimRight(str, " "))) // 16
}
TrimLeft 和 TrimPrefix 的区别

主要讲的是 TrimLeft,Trim,TrimRight,TrimSpace 与 TrimPrefix,TrimSuffix 的区别
前面一系列的方法可以理解为贪婪匹配,后者可以理解为 非贪婪匹配

package main

import (
	"fmt"
	"strings"
)

var str = "abcabc你好(hello)Go"

func main() {
	fmt.Println(strings.TrimLeft(str, "abc"))   // 你好(hello)Go
	fmt.Println(strings.TrimPrefix(str, "abc")) // abc你好(hello)Go
}
TrimFunc

TrimFunc(s string, f func(rune) bool) string 提供更灵活的过滤方式,其通过对 s进行 range 迭代,对其逐字符进行 f 调用,将其调用结果为 true的字符过滤掉,其变种包括(TrimLeftFunc,TrimRightFunc)

package main

import (
	"fmt"
	"regexp"
	"strings"
)

var str = "你好(hello)Go"

func main() {
	reg := regexp.MustCompile("^[\u4e00-\u9fa5]$")
	res := strings.TrimFunc(str, func(r rune) bool {
		return reg.MatchString(string(r))
	})
	fmt.Println(res) //(hello)Go
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值