1
let string = "\u{00A0}" // no-break space
let transformed = string.stringByApplyingTransform(NSStringTransformToUnicodeName, reverse: false)

预期结果:NO-BREAK SPACE

实际结果:\N{NO_BREAK_SPACE}

为什么额外的\N{and }?它们的用途是什么,除了正则表达式/扫描/解析/等之外,有什么方法可以删除它们?

4

1 回答 1

1

这就是 ICU 和 Unicode 在正则表达式中表示命名代码点的方式。所以我对这个输出一点也不感到惊讶。

这是在 unicode.org 上引用此语法的链接

ICU Project 的其他页面也对此进行了解释。

PS:\N{}实际上是更短的等价物\p{name=…}——正如链接锚上方的 unicode.org 页面中所解释的那样)。您可以在regular-expressions.info中看到类似的语法,其中提到了\p{…}使用其属性定义 Unicode 代码点的语法。

于 2015-10-31T00:48:59.690 回答