Задать вопрос

Регулярные выражения(POSIX), как преобразовать строку в число с плавающей точкой?

Добрый день. Есть Postgres, у него есть регулярные выражения POSIX.
Стоит задача преобразовать любую строку в число с плавающей точкой. Возможные варианты входящих строк
$15,500 .22
15,400.22$
15400.22$
$15400.22
15 400.22$
$15 400.22
15.400.2222$
$15.400.22
$ 15,400
15,400 $
15.400 $
$ 15.400


Вопрос больше теоретический, чем практический. Хочется сделать 1 регулярное выражение а не несколько вложенных.

Так же знатоков по данному вопросу прошу подсказать что значит эта конструкция
regexp_replace('14 32,33р', '([\d\s\w]+)([,.]+)', E'\\1', 'g')

Буква Е перед 3 параметром на который мы заменяем. Так и не нашел в стандарте что это может значить. Методом тыка выявил что есть еще буква b которая так же работает.

Ну и еще парочка вопросов.
Методом подстановки из группы я могу подставить не всю строку а так же ее обработать ?
Например в примере выше хотелось бы вставить строку в подстановку но уже без пробела между символами. Возможно ли это ?
  • Вопрос задан
  • 3440 просмотров
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • QA Studio
    Инженер по тестированию: с нуля до Junior+
    4 месяца
    Далее
  • Merion Academy
    Основы реляционных баз данных SQL
    1 месяц
    Далее
  • Учебный центр IBS
    ARC-PRG-001 Архитектор ПО. Путь к мастерству в проектировании систем
    2 недели
    Далее
Решения вопроса 1
yttrium
@yttrium
E - означает что это не просто строка на которую нужно заменить, а регулярное выражение в котором есть ссылка на первую группу (первую пару круглых скобок)

Решить регулярными выражениями можно, но зачем если есть to_number.
Слишком разнообразны у вас разделители, надо будет как-то выявлять смысл разделителя.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы