К сожалению, в Amazon Redshift есть только регулярное выражение POSIX , которое не поддерживает ленивые квантификаторы.
Тем не менее, похоже, что они вам не нужны, AB\.(.*)\.\d+x\d+
должно подойти.
Что касается вашего вопроса, как извлечь промежуточный текст, у нас очень мало вариантов с функцией регулярных выражений Redshift. Все Большая часть хорошего материала не поддерживается. Вероятно, лучше сначала извлечь, а затем использовать CHARINDEX
и SUBSTRING
для изоляции внутренней части.
Однако, один последний трюк использует
regexp_replace( text, '.*AB\.|\.\\d+x\\d+.*')
Как указано в связанной документации, классы символов \ d в стиле POSIX должны использовать две обратные косые черты (\\
) или использовать эквивалентное выражение класса символов, например, [[:digit:]]