一、從Oracle正則表達式中提取數字
SELECT REGEXP_SUBSTR('Hello123World', '\d+') FROM DUAL; -- 結果為123
在Oracle中,可以使用REGEXP_SUBSTR函數來提取字元串中的數字部分。其中,’\d+’表示匹配所有的數字,如果想要僅匹配一位數字,可以使用’\d’。
如果要提取字元串中的所有數字,可以使用REGEXP_REPLACE函數,如:
SELECT REGEXP_REPLACE('Hello123World123', '[^\d]+', ',') FROM DUAL; -- 結果為123,123
‘[^\d]+’是一個正則表達式,表示匹配任意非數字字元。這裡將所有非數字字元替換為逗號,再用逗號作為分隔符將字元串拆分成數字部分。
二、Oracle正則表達式匹配中文
SELECT REGEXP_REPLACE('Hello世界', '[^\\u4e00-\\u9fa5]+', '') FROM DUAL; -- 結果為世界
使用’\u4e00-\u9fa5’來代表中文範圍。在正則表達式中使用’^’表示非,'[^\u4e00-\u9fa5]’表示非中文字元。上述例子中的函數使用REGEXP_REPLACE函數,將非中文字元替換為空字元串。
三、Oracle正則表達式去掉數字
SELECT REGEXP_REPLACE('Hello123World', '\d+', '') FROM DUAL; -- 結果為HelloWorld
使用REGEXP_REPLACE函數,將數字部分替換為空格即可。
四、Oracle正則表達式匹配替換
SELECT REGEXP_REPLACE('Hello World', 'Hello', 'Hi') FROM DUAL; -- 結果為Hi World
REGEXP_REPLACE函數不僅可以替換指定的正則表達式,還可以將指定的字元串替換為另一個字元串,比如上述例子中Hello被替換為Hi。
五、Oracle正則表達式包含中文
SELECT * FROM myTable WHERE REGEXP_LIKE(columnName, '.*[\u4e00-\u9fa5]+.*');
這裡使用了REGEXP_LIKE函數來匹配包含中文的數據。其中'[\u4e00-\u9fa5]’表示中文字元,’.*’表示任意字元。
六、Oracle正則表達式匹配字母
SELECT REGEXP_REPLACE('Hello123World', '[^[:alpha:]]+', '') FROM DUAL; -- 結果為HelloWorld
使用'[[:alpha:]]’正則表達式來匹配所有的字母。上述例子中的函數使用REGEXP_REPLACE函數,將非字母字元替換為空格即可。
七、Oracle正則表達式如何編寫
在編寫Oracle正則表達式時,需要注意以下幾點:
1、使用單引號將正則表達式括起來,如’Hello.*’。
2、在正則表達式中使用單個反斜杠’\’轉義特殊字元,如’\.’用於匹配句點’.’。
3、為了方便正則表達式的編寫,Oracle提供了很多縮寫符號,如’\d’匹配數字,’\w’匹配字元和數字,’\s’匹配空白字元等。
八、Oracle正則表達式匹配數字
SELECT * FROM myTable WHERE REGEXP_LIKE(columnName, '^\d+$');
使用’^\d+$’正則表達式來匹配純數字數據。其中’^’表示匹配開頭,’$’表示匹配結尾。上述例子中的函數使用REGEXP_LIKE函數,將符合條件的數據篩選出來。
九、Oracle正則表達式純數字
SELECT REGEXP_REPLACE('Hello123World456', '[^[:digit:]]+', '') FROM DUAL; -- 結果為123456
使用'[[:digit:]]’正則表達式來匹配所有的數字,上述例子中的函數使用REGEXP_REPLACE函數,將非數字字元替換為空格即可。
十、Oracle正則表達式截取字元串
SELECT REGEXP_SUBSTR('Hello World', '[^ ]+', 1, 2) FROM DUAL; -- 結果為World
使用REGEXP_SUBSTR函數來選擇特定的子串。其中,'[^ ]+’表示匹配除空格外的任意字元,’1, 2’表示從第2個匹配結果開始取。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/311596.html