Соответствие Oracle SQL Regexp_replace

Вот фанки соответствия, которые мне нужно выполнить.

A5.1.9.11.2

Должен стать:

A05.01.09.11.02

Количество разделов DOT будет варьироваться от одного до многих. И буква "А" всегда будет там и всегда будет 1 символом.

Я хотел бы использовать функцию regexp_replace(), чтобы использовать это как механизм сортировки. Благодарю.

1 ответ

Решение

Oracle SQL не поддерживает косвенные утверждения, которые были бы полезны для этого случая:

s/([0-9](?<![0-9]))/0\1/g

Вам придется использовать как минимум две замены:

REGEXP_REPLACE(REGEXP_REPLACE(col, '([0-9]+)', '0\1'), '0([0-9]{2})', '\1')
Другие вопросы по тегам