是否存在某种排序约定?

时间:2019-07-02 06:46:51

标签: sorting

是否存在一些确定的排序行惯例(字符)?对于常规表达式,某些约定应起与PCRE相似的作用。

例如,如果尝试使用Sublime Text(Ctrl-F9)和Vim(0A1b-a2_B)对:%sort(每个字符单独一行)进行排序,则结果将相同(请参见下面)。但是,我不确定其他编辑器和IDE是否会一样。

- 
0 
1 
2 
A 
B 
_ 
a 
b 

2 个答案:

答案 0 :(得分:1)

通常,字符是根据其数值排序的。尽管此功能过去仅适用于ASCII字符,但也已被unicode编码采用。 http://www.asciitable.com/

如果没有相反的选择,这是字符排序的事实上的标准。除了实际的字母字符外,顺序有些随意。

答案 1 :(得分:1)

有两种主要的字符串排序方式:

  • 词典编排:代码点值或代码单位值或序列化的代码单位值(字节)的数值。对于某些字符编码,它们将全部相同。该算法非常简单,但是这种方法并不友好。

  • 特定于文化/语言环境:使用每种支持的文化的序数数据库。对于Unicode字符集,它称为CLDR。同样,在对Unicode应用排序时,排序可以考虑字素簇。字素簇是一个基本代码点,后跟一个零个或多个非间距(用作前一个字形的扩展)标记的序列。

对于仅使用一个或两个脚本设计的某些具有一种编码的较旧字符集,这两种方法可能完全相同。

  • 有时,人们将格式读入字符串中,例如字母序列后跟数字序列或几种日期格式之一。这些是非常特殊的类型,需要在用户期望的地方应用。注意:儒略历的ISO 8601日期格式可以正确排序,而不管使用哪种方法(对于所有字符编码)。