我在Oracle中遇到了以下問題,我不能通過regex獲得以下內容:
例如,我有這個字串:
C_1 123 * C_2 * 4332
我怎樣才能得到下面的結果?
123, 4332
現在我所做的是:
SELECT regexp_replace('C_1 123 * C_2 * 4332'/span>,'C_[0-9。 ] |[[:標點:]]|[[:空格:]]', '') FROM DUAL。
但在這種情況下,我得到的是1234332。
uj5u.com熱心網友回復:
你可以使用
SELECT trim(BOTH ' 。 ' FROM regexp_replace('C_1 123 * C_2 * 4332', '(C_S |D) ', ',') FROM DUAL。
請看在線演示。
(C_S |D) 重碼匹配一個或多個重復的C_后跟一個或多個非空格字符或任何非數字字符,并且匹配的內容被替換成一個,。
由于匹配可能發生在字串的開頭或結尾,trim函式被用來對regexp_replace結果進行后處理。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/332385.html
標籤:
