用法:
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=true
、newline2ls=true
或newline2ps=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"
相关用法
- Julia Unicode.ispunct用法及代码示例
- Julia Unicode.uppercase用法及代码示例
- Julia Unicode.iscntrl用法及代码示例
- Julia Unicode.isletter用法及代码示例
- Julia Unicode.isdigit用法及代码示例
- Julia Unicode.lowercase用法及代码示例
- Julia Unicode.islowercase用法及代码示例
- Julia Unicode.isassigned用法及代码示例
- Julia Unicode.textwidth用法及代码示例
- Julia Unicode.isprint用法及代码示例
- Julia Unicode.titlecase用法及代码示例
- Julia Unicode.isxdigit用法及代码示例
- Julia Unicode.isuppercase用法及代码示例
- Julia Unicode.lowercasefirst用法及代码示例
- Julia Unicode.isnumeric用法及代码示例
- Julia Unicode.isspace用法及代码示例
- Julia Unicode.uppercasefirst用法及代码示例
- Julia Union{}用法及代码示例
- Julia UnitRange用法及代码示例
- Julia UUIDs.uuid4用法及代码示例
- Julia UUIDs.uuid_version用法及代码示例
- Julia UUIDs.uuid5用法及代码示例
- Julia UUIDs.uuid1用法及代码示例
- Julia splice!用法及代码示例
- Julia @cfunction用法及代码示例
注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Unicode.normalize — Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。