62
задан 1 March 2019 в 18:56

1 ответ

Скорее всего, из-за JDK-6609854 и JDK-8189343, который сообщил об отрицательной вложенной обработке классов символов (в Вашем примере [^[0-9-]]). Это поведение было зафиксировано в 9 и 10, но фиксация не была бэкпортирована к 8. Ошибка для Java 8 объяснена как:

В Java, отрицание делает не , относятся к чему-либо появляющемуся во вложенном [brackets]

, Таким образом [^c] не соответствует "c", как Вы ожидали бы.

[^[c]] действительно соответствует "c". Не, что я ожидал бы.

[[^c]] не соответствует "c"

, то же сохраняется для диапазонов или выражений свойства - если они - внутренние скобки, отрицание в, уровень не влияет на них.

[^a-z] противоположно от [^[a-z]]

65
ответ дан 31 October 2019 в 14:31

Другие вопросы по тегам:

Похожие вопросы: