Oracle的REGEXP_REPLACE函數是一個強大的文本處理工具,它可以使用正則表達式來查找和替換字符串中的特定模式
SELECT REGEXP_REPLACE('123-456-789', '[^0-9]', '') AS result FROM dual;
在這個例子中,我們使用正則表達式[^0-9]
來匹配所有非數字字符。REGEXP_REPLACE函數將這些字符替換為空字符串,從而刪除它們。結果將是123456789
。
SELECT REGEXP_REPLACE('123-456-789', '(\d{3})-(\d{3})-(\d{4})', '(\1) \2-\3') AS result FROM dual;
在這個例子中,我們使用正則表達式(\d{3})-(\d{3})-(\d{4})
來匹配電話號碼的三個部分。然后,我們使用替換模式(\1) \2-\3
將這些部分重新組合成標準格式。結果將是(123) 456-789
。
SELECT REGEXP_REPLACE('hello world', '(\b\w)', UPPER('\1')) AS result FROM dual;
在這個例子中,我們使用正則表達式(\b\w)
來匹配每個單詞的第一個字母。然后,我們使用替換模式UPPER('\1')
將這些字母轉換為大寫。結果將是Hello World
。
SELECT REGEXP_REPLACE('<p>This is a <b>bold</b> text.</p>', '<[^>]+>', '') AS result FROM dual;
在這個例子中,我們使用正則表達式<[^>]+>
來匹配所有HTML標簽。REGEXP_REPLACE函數將這些標簽替換為空字符串,從而刪除它們。結果將是This is a bold text.
。
這些例子展示了如何使用Oracle的REGEXP_REPLACE函數進行復雜的文本處理。通過使用正則表達式,你可以輕松地實現各種字符串操作。