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

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

方法一:

可以使用unicode包中的函数 func Is(rangeTab *RangeTable, r rune) bool 来判断字符是否属于中文的Unicode范围。以下是一个基于该方法的示例代码:

Go 复制代码
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范围内。以下是一个基于该方法的示例代码:

Go 复制代码
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) 来判断字符串是否匹配正则表达式。以下是一个基于该方法的示例代码:

Go 复制代码
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("字符串不包含中文")
    }
}
相关推荐
2401_896732133 分钟前
MySQL小笔记
mysql
喵了几个咪1 小时前
GoWind CMS 拆解:在 Go 里给 TipTap 搭一套 Yjs 协同后端
开发语言·后端·golang
程序员清风1 小时前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
正在走向自律2 小时前
数据集成产品的技术底座:从日志解析原理到 KFS 同步链路搭建(含建表与增删改查完整代码)
数据库·oracle·信创·数据集成·国产数据库·kingbasees·全量+增量同步
程序员塔塔喵2 小时前
【MySQL篇|第七篇】MySQL事务
数据库·mysql·mysql事务
独隅3 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
_孤傲_3 小时前
快速掌握 MySQL 语法
数据库·后端·mysql
数字新视界5 小时前
一体化机柜在数据中心运维中的创新应用与优势分析
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
SelectDB5 小时前
从 StarRocks 走向 Apache Doris:如何实现引擎平滑替换与架构升级?
大数据·数据库·数据分析
为思念酝酿的痛5 小时前
MySQL的操作
数据库·mysql