Данные выглядят как список пар имя / значение.
Существует встроенная функция для извлечения значений из такого списка:
Nvp(REQUEST_DSC, 'ACT', ',', '=')
Но это будет работать только в том случае, если разделителивсегда одинаковы, т. е. ','
и '='
, и он чувствителен к регистру, т. е. 'act=00000000'
не будет найден
В противном случае вы можете упростить Гордону RegEx.Найдите 'ACT='
, не добавляя его ('\K'
) к общему совпадению, а затем верните следующие цифры ('\d'
).i
запрашивает совпадение без учета регистра:
RegExp_Substr(REQUEST_DSC, 'ACT=\K\d{8}', 1, 1, 'i') -- exactly 8 digits
RegExp_Substr(REQUEST_DSC, 'ACT=\K\d{1,8}', 1, 1, 'i') -- 1 to 8 digits
RegExp_Substr(REQUEST_DSC, 'ACT=\K\d+', 1, 1, 'i') -- any number of digitd