美文网首页
字符串方法0x07 -- 附录

字符串方法0x07 -- 附录

作者: import_hello | 来源:发表于2018-11-28 09:59 被阅读0次

转载须注明出处:简书@Orca_J35 | GitHub@orca-j35

字符串不仅支持所有通用序列操作,还实现了很多附件方法。
我会以『字符串方法』为标题,分几篇笔记逐一介绍这些方法。
我会在这仓库中持续更新笔记:https://github.com/orca-j35/python_notes

Letter

General_Category Values 中列举了一般分类属性(general category property),其中关于 "Letter" 的部分如下:

Abbr Long Description
L Letter Lu | Ll | Lt | Lm | Lo
LC Cased_Letter Lu | Ll | Lt
Lu Uppercase_Letter an uppercase letter
Ll Lowercase_Letter a lowercase letter
Lt Titlecase_Letter a digraphic character, with first part uppercase
Lm Modifier_Letter a modifier letter
Lo Other_Letter other letters, including syllables and ideographs

字符的第 3 的字段便是其一般分类属性(这里的字段是指 UnicodeData.txt 中每个码点后的字段),详见 General_Category。示例:

# 下面是拉丁小写字母'a'/'b'/'c'/'d'
0061;LATIN SMALL LETTER A;Ll;0;L;;;;;N;;;0041;;0041
0062;LATIN SMALL LETTER B;Ll;0;L;;;;;N;;;0042;;0042
0063;LATIN SMALL LETTER C;Ll;0;L;;;;;N;;;0043;;0043
0064;LATIN SMALL LETTER D;Ll;0;L;;;;;N;;;0044;;0044

"Alphabetic" 是一个枚举属性,由 Lowercase + Uppercase + Lt + Lm + Lo + Nl + Other_Alphabetic 构成 —— 欲了解 "Alphabetic " 的详细信息,可阅读 Property Table - Alphabetic

可见,在标准 Unicode 中 "Alphabetic" 涵盖范围大于 "Letter"。

欲了解 Unicode 一般分类属性,可阅读:

Nd

General_Category Values 中列举了一般分类属性,其中关于 "Number" 的部分如下:

Abbr Long Description
N Number Nd | Nl | No
Nd Decimal_Number a decimal digit
Nl Letter_Number a letterlike numeric character
No Other_Number a numeric character of other type

字符的第 3 的字段便是其一般分类属性(这里的字段是指 UnicodeData.txt 中每个码点后的字段),详见 General_Category

如果需要查看 Nd 中的码点和抽象字符,可阅读 List of Unicode Characters of Category “Decimal Number”

Separator&Other

General_Category Values 中列举了一般分类属性(general category property),其中关于 "Separator" 和 "Other" 的部分如下:

Abbr Long Description
Zs Space_Separator a space character (of various non-zero widths)
Zl Line_Separator U+2028 LINE SEPARATOR only
Zp Paragraph_Separator U+2029 PARAGRAPH SEPARATOR only
Z Separator Zs | Zl | Zp
Cc Control a C0 or C1 control code
Cf Format a format control character
Cs Surrogate a surrogate code point
Co Private_Use a private-use character
Cn Unassigned a reserved unassigned code point or a noncharacter
C Other Cc | Cf | Cs | Co | Cn

Numeric_Type

Decimal、Digit、Numeric 三者的关系是:Decimal⊂Digit⊂Numeric

Decimal

如果字符的 Numeric_Type 属性等于 Decimal,那么该字符的 6、7、8 三个字段都会包含同一个数字(这里的字段是指 UnicodeData.txt 中每个码点后的字段),且该数字是位于 0~9 之间的某个值。也就是说 Numeric_Type=Decemal 的字符是指用于十进制计数系统的字符。详见 Numeric_Type

Numeric_Type=Decemal 的示例,这些字符的 6、7、8 三个字段均包含同一个数字:

![decemal](0x06-1 字符串方法.assets/decemal.png)

# 下面是常见的10进制数字
0030;DIGIT ZERO;Nd;0;EN;;0;0;0;N;;;;;
0031;DIGIT ONE;Nd;0;EN;;1;1;1;N;;;;;
0032;DIGIT TWO;Nd;0;EN;;2;2;2;N;;;;;
0033;DIGIT THREE;Nd;0;EN;;3;3;3;N;;;;;
0034;DIGIT FOUR;Nd;0;EN;;4;4;4;N;;;;;
0035;DIGIT FIVE;Nd;0;EN;;5;5;5;N;;;;;
0036;DIGIT SIX;Nd;0;EN;;6;6;6;N;;;;;
0037;DIGIT SEVEN;Nd;0;EN;;7;7;7;N;;;;;
0038;DIGIT EIGHT;Nd;0;EN;;8;8;8;N;;;;;
0039;DIGIT NINE;Nd;0;EN;;9;9;9;N;;;;;
# 下面是Kharoshthi语系中的数字
0660;ARABIC-INDIC DIGIT ZERO;Nd;0;AN;;0;0;0;N;;;;;
0661;ARABIC-INDIC DIGIT ONE;Nd;0;AN;;1;1;1;N;;;;;
0662;ARABIC-INDIC DIGIT TWO;Nd;0;AN;;2;2;2;N;;;;;
0663;ARABIC-INDIC DIGIT THREE;Nd;0;AN;;3;3;3;N;;;;;
0664;ARABIC-INDIC DIGIT FOUR;Nd;0;AN;;4;4;4;N;;;;;
0665;ARABIC-INDIC DIGIT FIVE;Nd;0;AN;;5;5;5;N;;;;;
0666;ARABIC-INDIC DIGIT SIX;Nd;0;AN;;6;6;6;N;;;;;
0667;ARABIC-INDIC DIGIT SEVEN;Nd;0;AN;;7;7;7;N;;;;;
0668;ARABIC-INDIC DIGIT EIGHT;Nd;0;AN;;8;8;8;N;;;;;
0669;ARABIC-INDIC DIGIT NINE;Nd;0;AN;;9;9;9;N;;;;;

Digit

如果字符的 Numeric_Type 属性等于 Digit,那么该字符的 7、8 两个字段会包含同一个数字,但字段 6 为空(这里的字段是指 UnicodeData.txt 中每个码点后的字段),且该数字是位于 0~9 之间的某个值。在 Decimal 的基础上包含需要特殊处理的数字(例如兼容性上标数字)。

从 Unicode 6.3.0 开始,不会给新编码的数字字符赋予 Numeric_Type=Digit,也不会将具备 Numeric_Type=Numeric 的现有字符字符改为 Numeric_Type=Digit,Digit 和 Numeric 之间的区别不再有实际意义。详见 Numeric_Type

Numeric_Type=Digit 的示例,这些字符的 7、8 两个字段包含同一个数字,字段 6 为空:

![digit](0x06-1 字符串方法.assets/digit.png)

# 下面是上标'⁸'和'⁹'
2078;SUPERSCRIPT EIGHT;No;0;EN;<super> 0038;;8;8;N;SUPERSCRIPT DIGIT EIGHT;;;;
2079;SUPERSCRIPT NINE;No;0;EN;<super> 0039;;9;9;N;SUPERSCRIPT DIGIT NINE;;;;
# 下面是下标'₀'和'₁'
2080;SUBSCRIPT ZERO;No;0;EN;<sub> 0030;;0;0;N;SUBSCRIPT DIGIT ZERO;;;;
2081;SUBSCRIPT ONE;No;0;EN;<sub> 0031;;1;1;N;SUBSCRIPT DIGIT ONE;;;;

Numeric

如果字符的 Numeric_Type 属性等于 Numeric,那个该字符的仅字段 8 会包含一个数值,字段 6、7 为空(这里的字段是指 UnicodeData.txt 中每个码点后的字段)。在 Digit 的基础上包含了正(负)整数或有理数——包括分数,例如 U+2155 表示分数 '⅕',详见 Numeric_Type。在 Unihan 中某些字符也具备此属性,见 Numeric_Type, Han

Numeric_Type=Numeric 的示例,这些字符仅字段 8 会包含一个数值,字段 6、7 为空:

![Numeric](0x06-1 字符串方法.assets/Numeric.png)

# 下面是一些分数
2150;VULGAR FRACTION ONE SEVENTH;No;0;ON;<fraction> 0031 2044 0037;;;1/7;N;;;;;
2151;VULGAR FRACTION ONE NINTH;No;0;ON;<fraction> 0031 2044 0039;;;1/9;N;;;;;
2152;VULGAR FRACTION ONE TENTH;No;0;ON;<fraction> 0031 2044 0031 0030;;;1/10;N;;;;;
2153;VULGAR FRACTION ONE THIRD;No;0;ON;<fraction> 0031 2044 0033;;;1/3;N;FRACTION ONE THIRD;;;;
2154;VULGAR FRACTION TWO THIRDS;No;0;ON;<fraction> 0032 2044 0033;;;2/3;N;FRACTION TWO THIRDS;;;;
2155;VULGAR FRACTION ONE FIFTH;No;0;ON;<fraction> 0031 2044 0035;;;1/5;N;FRACTION ONE FIFTH;;;;

相关文章

网友评论

      本文标题:字符串方法0x07 -- 附录

      本文链接:https://www.haomeiwen.com/subject/salqqqtx.html