Isso provavelmente é bem simples para a maioria, mas eu não sou muito bom com expressões regulares.
Tenho um conjunto de strings com este tipo de formato:
SYND_YAHOO_7BEST_RANKADDITIONS_268_2357425
Então, basicamente, eu quero pesquisar a string e extrair o padrão _###_. Note que pode haver 1 dígito, ou 2 ou 3 ou 4, etc. Eu sei que REGEXP_SUBSTR fará isso para mim, mas não tenho certeza da expressão simples a ser usada.
Obrigado!
Supondo
268
que seja sua correspondência desejada, um padrão bem simples funcionará. Abaixo retorna o grupo de dígitos entre sublinhados no final da string no primeiro grupo de captura..*_(\d+)_.*$
https://regex101.com/r/gMCzdD/1
A chave principal aqui é que começamos com
.*
as correspondências agressivas "tantas vezes quanto possível", o que significa que capturaremos a última ocorrência de dígitos entre sublinhados, mesmo que o mesmo padrão ocorra anteriormente na string.