Всегда ли захваты в выражениях регулярных выражений, нечувствительных к регистру, сохраняют регистр?JAVA

Программисты JAVA общаются здесь
Anonymous
Всегда ли захваты в выражениях регулярных выражений, нечувствительных к регистру, сохраняют регистр?

Сообщение Anonymous »

Дано регулярное выражение, которое было сделано без учета регистра с помощью флага i или (?i) и которое содержит группы захвата, как в следующем примере:

Код: Выделить всё

(?i)username: (?\S) role: (?\S)
гарантированно ли, что извлеченные из него фрагменты будут в том же виде, в каком они были в исходной строке?
То есть, если бы я примените приведенное выше регулярное выражение к строке примера

Код: Выделить всё

username: coolGuy99 role: ADMIN
собираюсь ли я получить user=coolGuy99 и role=ADMIN при всех обстоятельствах или возможно ли, чтобы механизм регулярных выражений возвращал такие значения, как Coolguy99
code> или COOLGUY99 для пользователя и администратора или Admin для роли?
Краткий тест на regex101 показывает, что, по крайней мере, его механизм сохраняет регистр в совпадениях, но мне хотелось бы получить подтверждение того, что не существует какого-то крайнего случая, для которого это неверно, прежде чем полагаться на это.
Я использую диалект Java для своего проекта , но чтобы сделать вопрос более полезным в целом, я был бы признателен за ответы, действительные для всех движков/диалектов, или, если ответ на них различается, признателен за то, какие из них сохраняют регистр, а какие нет.

Подробнее здесь: https://stackoverflow.com/questions/790 ... preserving

Вернуться в «JAVA»