golang如何判斷字符串是否包含中文
golang判斷字符串是否包含中文
在Golang中,判斷字符串是否包含中文可以使用多種實現(xiàn)方法:
方法一
可以使用unicode包中的函數(shù) 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包中的函數(shù) func In(r rune, ranges ...*RangeTable) bool
來判斷字符是否在中文的Unicode范圍內(nèi)。
以下是一個基于該方法的示例代碼:
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包中的函數(shù) 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("字符串不包含中文") } }
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Golang使用bcrypt實現(xiàn)密碼加密和校驗的操作代碼
bcrypt可以用于數(shù)據(jù)庫中的用戶密碼保存,相比md5而言更加的安全可靠,這篇文章主要介紹了Golang使用bcrypt實現(xiàn)密碼加密和校驗的操作代碼,需要的朋友可以參考下2024-05-05Golang try catch與錯誤處理的實現(xiàn)
社區(qū)不少人在談?wù)?nbsp;golang 為毛不用try/catch模式,而采用苛刻的recovery、panic、defer組合,本文就來詳細的介紹一下,感興趣的可以了解一下2021-07-07