ORACLE獲取字串中數字部分

2022-01-30 22:23:33 字數 1501 閱讀 5711

select translate('

1212中國2323

','0123456789'||

'1212中國2323

','0123456789

') from

dual;

select regexp_replace('

23456中國3-00=.,45

','[^0-9]

') from dual;

標籤:regexp_replace regexp replace oracle 正則

函式的引數說明:

一共6個引數,分別是

1、待匹配的字串

2、正規表示式

3、替換的字元

4、標識從第幾個字元開始正規表示式匹配。(預設為1)

5、標識第幾個匹配組。(預設為全部都替換掉)

6、取值範圍:

i:大小寫不敏感;

c:大小寫敏感;(預設)

n:不匹配換行符號;

m:多行模式;

x:擴充套件模式,忽略正規表示式中的空白字元。

可以通過regexp_substr函式(配合正規表示式)來實現。

舉例:sql:select regexp_substr('cyj8-abc','[0-9]+') from dual;

以上sql執行結果:8;

備註:regexp_substr函式格式如下:

function regexp_substr(string, pattern, position, occurrence, modifier)

__srcstr :需要進行正則處理的字串

__pattern :進行匹配的正規表示式

__position :起始位置,從第幾個字元開始正規表示式匹配(預設為1)

__occurrence :標識第幾個匹配組,預設為1

__modifier :模式('i'不區分大小寫進行檢索;'c'區分大小寫進行檢索。預設為'c'。)

select

( ((translate('t123','0123456789',' ')))) "字元",

( (translate('t34t56t','abc...zabct...z',' '))) "數字"

from dual;

一、語法:

translate(string,from_str,to_str)

二、目的

返回將(所有出現的)from_str中的每個字元替換為to_str中的相應字元以後的string。translate 是 replace 所提供的功能的乙個超集。如果 from_str 比 to_str 長,那麼在 from_str 中而不在 to_str 中的額外字元將從 string 中被刪除,因為它們沒有相應的替換字元。to_str 不能為空。oracle 將空字串解釋為 null,並且如果translate 中的任何引數為null,那麼結果也是 null。

三、允許使用的位置

過程性語句和sql語句。

c 獲取字串中的數字

c 獲取字串中的數字 獲取字串中的數字 字串 數字 例子1 public static decimal getnumber string str return result 例子2 獲取字串中的數字 字串 數字 public static int getnumberint string str re...

Oracle獲取字串長度

oracle中常用的字串長度獲取方法,有兩個 lengthb string 和length string b是byte位元組的意思 其中 lengthb string 計算string所佔的位元組長度 返回字串的長度,單位是位元組 length string 計算string所佔的字元長度 返回字串...

oracle 只取字串中的數字

create or replace function getnumber str varchar2 return varchar2 is rstr varchar2 4000 begin if str is null then return null else rstr for i in 1 len...