Ситуация разделения строк

#java #regex #string #split

#java #регулярное выражение #строка #разделение

Вопрос:

У меня довольно специфическая проблема, когда я хочу взять уравнение и разбить его, но также обратить внимание на отрицательные числа. Нравится:

 exampleString = "12--5*-2"
  

Используя эту строку, я хочу разделить ее на 3 числовых значения:
[12, -5, -2]

Я заставил его работать с двойным вычитанием путем разделения "6-8--5" на "(?<!-)-"
Это даст мне [6, 8, -5]

Но я не знаю, как ее изменить, чтобы она работала со всеми операторами, например:
"5*-2" —> [5, -2]

Я чувствую, что это должно работать, и я потратил несколько часов на поиск, но не нашел ничего, что могло бы это сделать. Любая помощь или предложения будут оценены, приветствия.

Ответ №1:

Для разделения строки можно использовать регулярное выражение, подобное следующему.

 "(?<!\G)[*/ -])"
  

Регулярное выражение разделится на любой из указанных символов *,/, ,- если предыдущий символ не был совпадением (-> ‘—‘ разделится только на первом ‘-‘).

Комментарии:

1. Насколько я могу судить, Perfect работает для всего. Спасибо.