如何查看unicode类别中的所有字符?

时间:2014-12-08 20:20:41

标签: unicode go

我已阅读文档但找不到任何示例。

http://golang.org/pkg/unicode/#IsPunct

文档中是否有明确列出这些类别中所有字符的位置?我想看看P类或M类中包含哪些字符。

2 个答案:

答案 0 :(得分:1)

它不在文档中,但您仍然可以阅读源代码。您正在讨论的类别在此文件中定义:http://golang.org/src/pkg/unicode/tables.go

例如,P类别以这种方式定义:

2029    var _P = &RangeTable{
2030        R16: []Range16{
2031            {0x0021, 0x0023, 1},
2032            {0x0025, 0x002a, 1},
2033            {0x002c, 0x002f, 1},
2034            {0x003a, 0x003b, 1},
2035            {0x003f, 0x0040, 1},
2036            {0x005b, 0x005d, 1},
2037            {0x005f, 0x007b, 28},
                ...
2141            {0xff5d, 0xff5f, 2},
2142            {0xff60, 0xff65, 1},
2143        },
2144        R32: []Range32{
2145            {0x10100, 0x10102, 1},
2146            {0x1039f, 0x103d0, 49},
2147            {0x10857, 0x1091f, 200},
                ...
2157            {0x12470, 0x12473, 1},
2158        },
2159        LatinOffset: 11,
2160    }

这是打印所有这些内容的简单方法:

var p = unicode.Punct.R16
for _, r := range p {
    for c := r.Lo; c <= r.Hi; c += r.Stride {
        fmt.Print(string(c))
    }
}

答案 1 :(得分:0)

有许多网站提供Unicode字符数据库的接口。例如,请参阅http://www.fileformat.info/info/unicode/category/上的“标点符号...”类别。