Tag: case folding

假设Unicode和不区分大小写,模式“..”是否匹配“FfIsS”?

这听起来像个笑话,但我可以certificate这一点。 假设: Dot匹配任何单个字符。 当且仅当它与s.toUpperCase()匹配时,不区分大小写的模式匹配s 。 以下所有内容都非常符合逻辑并且在Java中保留: “ffi”.matches(“.”) .matse “ffi”.matches(“.”) LATIN SMALL LIGATURE FFI(U + FB03)是一个字符,所以必须匹配 “ß”.matches(“.”) LATIN SMALL LETTER SHARP S(U + 00DF)是一个字符,因此它必须匹配 “ffi”.toUpperCase().equals(“FFI”)的Unicode标准(没有资本连接FFI) “ß”.toUpperCase().equals(“SS”)的Unicode标准(有一个大写的S,但它没有被使用) “FfI”.toUpperCase().equals(“FFI”)显然”FfI”.toUpperCase().equals(“FFI”) “sS”.toUpperCase.equals(“SS”)显然 因此,假设正则表达式中的第一个点代表ffi而第二个代表ß ,则正则表达式必须匹配“FFISS”,并且因为不区分大小写也是“FfIsS”。 我真的希望有一些错误,否则正则表达式会变得非常不可用。 问题: 我的“证据”有什么问题? 如果我的第二个假设不成立,那么“不区分大小写”究竟意味着什么?