Я хочу сопоставить только скобку [] в моем коде:
// #peekToken() -> String
do { ... } while (context.peekToken().matches("\\[\\]"));
intellij говорит:
и автоматическое исправление превращает его в:
"\\[]"
Почему они одинаковы?




Это связано с тем, что символ «закрыть скобку» ] не является регулярным выражением, если перед этим не была открыта скобка [. Поэтому экранировать его избыточно \\], поскольку Java достаточно умен, чтобы знать, что в этом случае мы ищем сам символ.
Вы можете прочитать документация для получения дополнительной информации о контекстах, в которых символы воспринимаются как регулярные выражения.
s/Java/regex/g
Потому что
], когда шаблон в данный момент не находится внутри набора символов, не нужно экранировать, чтобы соответствовать буквальному]