當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。