Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > golang判断字符串是否包含中文

golang如何判断字符串是否包含中文

作者:alden_ygq

这篇文章主要介绍了golang如何判断字符串是否包含中文问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

golang判断字符串是否包含中文

在Golang中,判断字符串是否包含中文可以使用多种实现方法:

方法一

可以使用unicode包中的函数 func Is(rangeTab *RangeTable, r rune) bool 来判断字符是否属于中文的Unicode范围。

以下是一个基于该方法的示例代码:

package main
 
import (
    "fmt"
    "unicode"
)
 
func IsContainChinese(str string) bool {
    for _, r := range str {
        if unicode.Is(unicode.Scripts["Han"], r) {
            return true
        }
    }
    return false
}
 
func main() {
    str := "Hello, 中国!"
    if IsContainChinese(str) {
        fmt.Println("字符串包含中文")
    } else {
        fmt.Println("字符串不包含中文")
    }
}

方法二

可以使用unicode包中的函数 func In(r rune, ranges ...*RangeTable) bool 来判断字符是否在中文的Unicode范围内。

以下是一个基于该方法的示例代码:

package main
 
import (
    "fmt"
    "unicode"
)
 
func IsContainChinese(str string) bool {
    for _, r := range str {
        if unicode.In(r, unicode.Scripts["Han"]) {
            return true
        }
    }
    return false
}
 
func main() {
    str := "Hello, 中国!"
    if IsContainChinese(str) {
        fmt.Println("字符串包含中文")
    } else {
        fmt.Println("字符串不包含中文")
    }
}

方法三

可以使用正则表达式来匹配中文字符,使用regexp包中的函数 func MatchString(pattern string, s string) (matched bool, err error) 来判断字符串是否匹配正则表达式。

以下是一个基于该方法的示例代码:

package main
 
import (
    "fmt"
    "regexp"
)
 
func IsContainChinese(str string) bool {
    pattern := "[\u4e00-\u9fa5]" // 匹配中文字符的正则表达式
    matched, _ := regexp.MatchString(pattern, str)
    return matched
}
 
func main() {
    str := "Hello, 中国!"
    if IsContainChinese(str) {
        fmt.Println("字符串包含中文")
    } else {
        fmt.Println("字符串不包含中文")
    }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文