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
}

你可能感兴趣的:(Golang,#,go从入门到精通,golang,开发语言,后端)