В вашем регулярном выражении (\\([\d\\+\\-]\\))
вы должны использовать квантификатор , как +
, чтобы повторить класс символов и заметить, что внутри класса символов знак плюса не долженбыть экранированным, а также дефис не должен быть экранирован, поскольку он является последним символом класса символов.
В этом случае регулярное выражение будет выглядеть как (\\([\d+-]+\\))
, но это также будет включать сопоставление внешних скобок.
Что вы можете сделать, это поместить круглые скобки внутри, чтобы вы соответствовали внешним, а внутренние действовали как группа захвата, чтобы значения, которые вы хотите получить, находились в этой группе.
Класс персонажа [\d+-]+
также будет соответствовать, например, ---
, что, я думаю, не то, что вы хотите.Вы можете, например, сначала сопоставить цифры, а затем повторяющийся шаблон, который соответствует +
или -
, а затем снова цифры, чтобы сохранить структуру выражения.Например:
\\((\\d+(?:[+-]\\d+)+)\\)
Пояснение
\\(
Совпадение (
(
Группа захвата \\d+
Совпадение 1+ цифр (?:[+-]\\d+)+
Группа без захвата, которая соответствует +
или -
, затем 1+ цифр и повторяется 1+ раз.
)
Закрыть группу захвата \\)
Совпадение )
Regex demo