@nskaskyou

Как поймать отрицательное число при помощи регулярных выражений?

Доброго времени суток

Есть во такое вот выражение
const e = "1+-33-(0.1*22.1234/7-9)";
Из него нужно научиться делать вот такой массив
["1", "+", "-33", "-", "(", "0.1", "*", "22.1234", "/", "7", "-", "9", ")"];
//  "+", "-33"

Пока удалось сделать такую регулярку:
console.log(e.match(/[()+-/\*]|\d+\.?\d*/g));
// ["1", "+", "-", "33" ...];
//  "+", "-", "33"

но она не понимает что такое отрицательные числа. А я не понимаю как заставить ее понимать

Заранее спасибо
  • Вопрос задан
  • 294 просмотра
Пригласить эксперта
Ответы на вопрос 2
dollar
@dollar
Делай добро и бросай его в воду.
но она не понимает что такое отрицательные числа, а я не понимаю как заставить ее понимать

Скажите ей, что отрицательные числа - это последовательности из цифр, перед которыми стоит знак -

Конечно, знак минус также используется и для вычитания, и это может быть проблемой. А может и не быть. Зависит от того, зачем вообще понадобилось искать отрицательные числа регулярными выражениями, почему именно такое ограничение, и не проблема XY ли это.
Ответ написан
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
console.log(e.match(/-?\d+(\.\d+)?|[()+/\*-]/g));
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы