当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Julia Unicode.normalize用法及代码示例


用法:

Unicode.normalize(s::AbstractString; keywords...)
Unicode.normalize(s::AbstractString, normalform::Symbol)

规范化字符串 s 。默认情况下,规范组合 (compose=true) 在不确保 Unicode 版本控制稳定性 (compat=false) 的情况下执行,这会生成尽可能短的等效字符串,但可能会引入早期 Unicode 版本中不存在的组合字符。

或者,可以指定 Unicode 标准的四个 "normal forms" 之一:normalform 可以是 :NFC:NFD:NFKC:NFKD 。范式 C(规范组合)和 D(规范分解)将同一抽象字符串的不同视觉上相同的表示转换为单个规范形式,形式 C 更紧凑。范式 KC 和 KD 还规范化了 "compatibility equivalents":它们将抽象相似但视觉上不同的字符转换为单个规范选择(例如,它们将连字扩展为单个字符),而 KC 形式更紧凑。

或者,可以通过调用 Unicode.normalize(s; keywords...) 来获得更精细的控制和额外的转换,其中指定了任意数量的以下布尔关键字选项(除了 compose 之外,所有这些选项都默认为 false):

  • compose=false:不执行规范合成
  • decompose=true :进行规范分解而不是规范组合(如果存在,则忽略 compose=true)
  • compat=true:兼容性等价物被规范化
  • casefold=true :执行 Unicode 大小写折叠,例如用于不区分大小写的字符串比较
  • newline2lf=truenewline2ls=truenewline2ps=true :将各种换行符序列(LF、CRLF、CR、NEL)分别转换为换行符 (LF)、line-separation (LS) 或 paragraph-separation (PS) 字符
  • stripmark=true :去除变音符号(例如重音符号)
  • stripignore=true :去除 Unicode 的 "default ignorable" 字符(例如软连字符或从左到右的标记)
  • stripcc=true :去除控制字符;水平制表符和换页符转换为空格;除非指定了 newline-conversion 标志,否则换行符也会转换为空格
  • rejectna=true:如果找到未分配的代码点,则抛出错误
  • stable=true :强制 Unicode 版本控制稳定性(永远不要引入早期 Unicode 版本中缺少的字符)

例如,NFKC 对应于选项 compose=true, compat=true, stable=true

例子

julia> "é" == Unicode.normalize("é") #LHS: Unicode U+00e9, RHS: U+0065 & U+0301
true

julia> "μ" == Unicode.normalize("µ", compat=true) #LHS: Unicode U+03bc, RHS: Unicode U+00b5
true

julia> Unicode.normalize("JuLiA", casefold=true)
"julia"

julia> Unicode.normalize("JúLiA", stripmark=true)
"JuLiA"

相关用法


注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Unicode.normalize — Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。