1.示例:golang识别希伯来文(hebrew)

package main

import (
	"fmt"
	"regexp"
)

func main() {
	english := "One, two three!"
	text2 := "Раз, два три!"
	text3 := "Jedna, dva tři čtyři pět!"
	hebrew := "חיים"  // 希伯来文
	fmt.Println(get_words_from(english))
	fmt.Println(get_words_from(text2))
	fmt.Println(get_words_from(text3))
	fmt.Println(get_words_from(hebrew))
}

func get_words_from(text string) []string {
	words := regexp.MustCompile("[\\p{Hebrew}]+")
	return words.FindAllString(text, -1)
}

运行结果:
只有希伯来文可以被识别输出,其他语言打印都是空

[]
[]
[]
[חיים]

2.识别其他语言

  • 如果需要识别其他语言,可以参考下边golang官方文档里对应的语言名称。只需要识别某一种语言的话,替换下边正则表达式里的Hebrew,即可。需要同时识别多种语言,在正则表达式里添加需要识别的语言即可。
regexp.MustCompile("[\\p{Hebrew}]+")
  • golang unicode编码支持的语言
    点进去下边官方文档链接,即可查看。
    https://golang.org/pkg/unicode/#L
    在这里插入图片描述

  • 其他语言及对应的unicode名称

IL 希伯来语 \p{Hebrew}
JP 日语 p{Hiragana}
TW 繁体中文 p{Han}
GR 希腊语 \p{Greek}
KR 韩语 \p{Hangul}
SA 沙特阿拉伯语 \p{Arabic}
KW 科威特语 \p{Arabic}
LB 黎巴嫩语 \p{Arabic}
UA 乌克兰语 \p{Cyrillic}
BG 保加利亚语 \p{Cyrillic}