Да, это возможно, и даже с функцией SUBSTRING_REGEXPR
, которую вы упомянули.
Просто создайте регулярное выражение, соответствующее строке между IP:
и |
, и используйте его в функции:
SELECT ROW
, SUBSTRING_REGEXPR (' -- put your regular expression here -- ' IN "Col1") as IP_EXTRACTED
FROM
T;
Существует несколько способов выражения вашего условия в виде регулярного выражения., может быть
IP:([[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3})\|
Этот будет соответствовать только IP-адресам, которые имеют от 1 до 3 цифр между точками (но не любые символы.
SELECT ROW
, SUBSTRING_REGEXPR ('IP:([[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3})\|'
IN "Col1"
GROUP 1) as IP_EXTRACTED
FROM
T;