
 Имеется строка, например такая:  

`5+1/2*(2+5*2- 14))*1200`  

  

Я составил регулярное выражение:  

`(?<=\D)(?=\d|\D)|(?<=\d|\D)(?=\D)`  

Оно разбивает данную строку на числа, скобки и арифметические знаки операций. В результате получаем:  


```
Найдено математическое выражение: [(-5+1/2*(2+5*2- --j))*1200]
Символ: [(]
Символ: [5]
Символ: [+]
Символ: [1]
Символ: [/]
Символ: [2]
Символ: [*]
Символ: [(]
Символ: [2]
Символ: [+]
Символ: [5]
Символ: [*]
Символ: [2]
Символ: [-]
Символ: [14]
Символ: [)]
Символ: [)]
Символ: [*]
Символ: [1200]
```
  

  

Но оно до конца не выполняет задуманного. Вот если число будет со знаком (-5, например), мне нужно этот самый знак тоже включить в символ, чтобы получилось так: **-**5+1/2*(2+5*2-14))*1200  

и на выходе было:  


```
Символ: [(]
Символ: [-5]      <- СМОТРИ СЮДА, ТУТ ЧИСЛО СО ЗНАКОМ, НЕЛЬЗЯ ОТДЕЛЯТЬ ЗНАК ОТ ЧИСЛА
Символ: [+]
Символ: [1]
Символ: [/]
Символ: [2]
Символ: [*]
Символ: [(]
Символ: [2]
Символ: [+]
Символ: [5]
Символ: [*]
Символ: [2]
Символ: [-]
Символ: [14]
Символ: [)]
Символ: [)]
Символ: [*]
Символ: [1200]
```
  
 

 Что исправить в регулярном выражении, чтобы оно разделяло числа со знаком?
============================================================================



 Попробуй глянуть в район такой регулярки:  

  

`(-?\d*\.{0,1}\d+)`  

  

Она выберет любые числа. Положительные и отрицательные 