我正在解析一些讨厌的文件 - 你知道,在单行中混合使用逗号,空格和制表符分隔符,然后通过文本编辑器运行它,该文本编辑器在第65列用CRLF包装。啊。
作为我在Cocoa中解析它的努力的一部分,我使用Apple的whitespaceAndNewlineCharacterSet
。但是,完全是什么?文档说“Unicode General Category Z *,U000A~U000D和U0085”。我能找到最后三个(85很有意思,但是〜是什么意思,什么是通用类别Z *?
那里有任何Unicode专家吗?
答案 0 :(得分:2)
〜表示"通过&#34 ;;因此,U000A,B,C和D.
短语" General Category Z *"是"任何通用类别属性是以Z开头的三个类别之一的字符。"因此,各种形式的空间(0020,00A0,1680,2000至200A,202F,205F,3000),以及线分隔符(2028)和段落分隔符(2029)。
答案 1 :(得分:1)
NSCharacterSet是一个不透明的类,不会轻易公开其内容。你必须更多地将其视为会员资格"规则服务而不是字符列表。
这可能是一种有点残酷的方法,但您可以通过遍历所有16位标量值并检查集合中的成员资格来获取NSCharacterSet中的成员列表:
let charSet = NSCharacterSet.whitespaceAndNewlineCharacterSet()
for i in 0..<65536
{
let u:UInt16 = UInt16(i)
if charSet.characterIsMember(u)
{ print("\(u): \(Character(UnicodeScalar(u)))") }
}
这为不可显示的字符集提供了令人惊讶的结果,但它可以回答你的问题。