В postgresql возникла необходимость получать строку, либо часть строки до /, содержащую только цифры.
Уже пару часов бьюсь над проблемой и не получается решить.
Строчки могут быть вида "1235", "1234/12", "dfhdhj1232", "dfhdhj1232/12"
Из этих строк мне нужно получить
"1235", "1234", "не валидная", "не валидная" соотственно.
В этов примере все работает хорошо, если есть /, когда его нет, выражение возвращает null.
select substring('123405/99' from '#"%[0-9]#"/%' for '#')
При попытке использовать
select substring('123405/99' from '#"%[0-9]#"/?%' for '#')
будет 123405/99 , что меня удивляет, т.к. я же получаю только то, что ограничнно символами #" .
Пробовал использовать (?=re), но так же не получил желаемого результата.
select substring('123405/99' from '^(?=1)([0-9]{1,2})' for '#')
Подскажите пожалуйста верный вариант выражения и где же я ошибаюсь в попытках составить верное выражение?