При условии Unicode и нечувствительности к регистру, шаблон «..» должен соответствовать «FfIsS»?
Звучит как шутка, но я могу это доказать.
Предположения:
Точка соответствует любому отдельному символу.Совпадения с учетом регистра символовs
если и только если это соответствует.s.toUpperCase()
Все следующее довольно логично и верно в Java:
"ffi".matches(".")
ЛАТИНСКАЯ МАЛЕНЬКАЯ ЛИГАТУРА 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")
очевидно"sS".toUpperCase.equals("SS")
очевидноТаким образом, предполагая, что первая точка в регулярном выражении означаетffi
а второй дляß
регулярное выражение должно совпадатьFFISS» и из-за нечувствительности к регистру также "FfIsS».I
действительно есть надеждаЧто-то не так, в противном случае регулярные выражения станут довольно непригодными.
Вопросы:
Какие'с моим не такдоказательство "?Что именнобез учета регистра" значит, если мое второе предположение недержать?