У меня есть столбец со следующими значениями в таблице postgres.
col1
uniprotkb:P62158(protein(MI:0326), 9606 - Homo sapiens)
uniprotkb:O00602-PRO_0000009136(protein(MI:0326), 9606 - Homo sapiens)
Я хотел бы извлечь значение из приведенных выше значений столбца.
col2
P62158
O00602
Я использую следующее регулярное выражение соответствует моему столбцу
select
uniprotkb:(.*)\-|\([a-zA-Z].* as col2
from table;
Но приведенное выше регулярное выражение захватывает текст перед последним '-'. Я хочу записать текст между uniprotkb: и перед первым появлением '(' или '-'. Любое предложение здесь будет полезно.