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}