@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"

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

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

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

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

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

Похожие вопросы
Wanted. Санкт-Петербург
До 450 000 ₽
Wanted. Санкт-Петербург
До 120 000 ₽
Wanted. Санкт-Петербург
До 100 000 ₽
25 нояб. 2024, в 02:45
2000 руб./за проект
24 нояб. 2024, в 23:46
20000 руб./за проект