#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 работает для всего. Спасибо.