This function written in plpgsql splits the string according to the separator and returns the last part. If the separator is not present in the string this function returns an empty string.
CREATE OR REPLACE FUNCTION public.get_last_part(text, text) RETURNS SETOF text LANGUAGE plpgsql AS $function$ DECLARE pos int; last_pos int; delim_length int := length($2); empty_string character := ''; BEGIN pos := strpos($1, $2); IF pos > 0 THEN last_pos := length($1)- length(regexp_replace($1, E'.*\\' || $2,'')); RETURN NEXT substring($1 FROM last_pos + 1); ELSE RETURN NEXT empty_string; END IF; RETURN; END; $function$
SELECT get_last_part('dotmaui.com','.') -- returns 'com' SELECT get_last_part('dotmaui.min.js','.') -- returns 'js' SELECT get_last_part('dotmaui,is,cool',',') -- returns 'cool' SELECT get_last_part('dotmaui',',') -- returns ''