You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求匹配指定字符串排序顺序的区域设置与排序规则

寻找匹配特定排序结果的区域设置/排序规则

目标升序排序结果

T. J. Smith
T. Smith
T.J. Smith
Talya
T'Amya
Tamya

已尝试的排序方式

  • Windows 10(本地区域设置)排序结果不匹配
  • Ubuntu Nautilus排序结果不匹配
  • Ubuntu sort工具:
    • LC_COLLATE=C模式结果不匹配
    • LC_COLLATE=en_US.UTF-8模式结果不匹配

排序规则特征分析

从目标排序的顺序可以拆解出核心逻辑:

  1. 点号(.)被忽略:
    前三个字符串的排序符合「忽略点号后,按空格、字母的常规升序规则」:
    • 忽略点号后,T. J. Smith变为T J Smith,T. Smith变为T Smith,T.J. Smith变为TJ Smith
    • 空格的排序权重低于字母,因此T J Smith < T Smith < TJ Smith,完全匹配目标里前三项的顺序。
  2. 单引号(')不被忽略,作为次级区分项:
    Talya < T'Amya < Tamya的顺序说明:
    • 优先比较纯字母序列:Talya的字母链是T-a-l-y-a,T'Amya忽略单引号后是T-a-m-y-a,由于l的排序权重小于m,因此Talya排在T'Amya之前。
    • 当纯字母序列完全相同时(T'Amya忽略单引号后与Tamya一致),带有单引号的原字符串排在无单引号的字符串之前。

结论

这种排序方式更可能是云服务自定义的规则,而非标准系统区域设置。常见的标准区域设置(如en_US.UTF-8、C)要么会忽略单引号,要么按ASCII码点将T'Amya排在Talya之前,无法匹配目标顺序。

如果需要在本地模拟该规则,可以尝试:

  1. 预处理文件名:移除所有点号(.),保留空格和单引号。
  2. 按预处理后的字符串升序排序。
  3. 若预处理后字符串相同,原字符串包含单引号的排在前面。

内容的提问来源于stack exchange,提问作者julio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 05:10:42