我正在寻找一种从Go中获取 unicode 类别( RangeTable
)的方法。rune
例如,字符a
映射到Ll
类别。该unicode
包指定了所有类别(http://golang.org/pkg/unicode/#pkg-variables),但我没有看到任何从给定的类别中查找类别的方法rune
。我是否需要使用适当的偏移量手动RangeTable
构造rune
?
问问题
683 次
2 回答
8
“unicode”包的文档没有返回符文范围的方法,但构建一个并不是很棘手:
func cat(r rune) (names []string) {
names = make([]string, 0)
for name, table := range unicode.Categories {
if unicode.Is(table, r) {
names = append(names, name)
}
}
return
}
于 2014-09-11T20:07:15.320 回答
0
这是基于接受的答案的替代版本,它返回 Unicode 类别:
// UnicodeCategory returns the Unicode Character Category of the given rune.
func UnicodeCategory(r rune) string {
for name, table := range unicode.Categories {
if len(name) == 2 && unicode.Is(table, r) {
return name
}
}
return "Cn"
}
于 2018-11-27T20:26:13.707 回答