nastya97core
@nastya97core
Начинающий программист

Как оптимизировать поиск суммы перед словом «руб.»?

Здравствуйте. Есть строка:
Бронирование № 372 12343.22 от 24 июня 21. Стоимость проживания 1000.32 руб. а так же комиссия в размере 500 руб.
Я сделала вот так:/[0-9.]*.(?=руб.)/g, однако regex101 говорит, что он сделал 579 steps. Я так понимаю это много и наверное код можно как-то оптимизировать. Подскажите, как?

Мне нужно достать 2 match: 1000.32 и 500

Плюс ко всему моя регулярка достаёт ещё и пробел после суммы. Он не нужен
  • Вопрос задан
  • 206 просмотров
Решения вопроса 1
@dodo512
\d+ можно поменять на \d++
\d++(?:\.\d+)?(?=\s*руб\.)
https://regex101.com/r/vxphzh/2

Или добавить (*SKIP)
\d+(*SKIP)(?:\.\d+)?(?=\s*руб\.)
https://regex101.com/r/vxphzh/3
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@JohnDidact
Нуб во всём
/(\d+(?:\.\d+)?) руб\./g
60e96ce718045868698847.jpeg

Хотя, возможно, что-то и упустил, давно не практиковал.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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