Я не знаю, как сделать это за один вызов, но вы можете сделать это с несколькими вызовами.
- Первый вызов: преобразовать вхождения "числа" в
href
в другую строку - Второй вызов: преобразование оставшихся вхождений "число"
- Третий вызов: преобразование вхождений "другая строка" обратно в "число".
Например,
with t as (
select 'The Number can be a whole number. <a href https://number.com a>' as text from dual)
select regexp_replace(
regexp_replace(
regexp_replace(text,'(<a href.*)(number)(.*a>)','\1$$$SAVE_NBR$$$\3'),
'number', 'num'),
'\$\$\$SAVE_NBR\$\$\$','number')
from t
Я не знаю, почему я использовал "$" в "другой строке" ... это только усложняет. Суть в том, чтобы выбрать строку, которая никогда не встречается естественным образом при вводе.