1. 元字符說明web
元字符 | 含義 |
^ | 匹配輸入字符串的開始位置。 |
$ | 匹配輸入字符串的結尾位置。 |
* | 匹配前面的字符零次或屢次。 |
+ | 匹配前面的字符一次或屢次。 |
? | 匹配前面的字符零次或一次。 |
. | 匹配任何字符,除了空. |
| | 指明兩項之間的一個選擇。例子'^([a-z]+|[0-9]+)$'表示全部小寫字母或數字組合成的字符串。 |
[ ] | 用於指定要在其中嘗試匹配列表中任何一個字符的匹配列表。 |
[^ ] | 用於指定一個不匹配列表,要嘗試匹配除列表中的字符以外的任何字符。 |
[…] | 接受括號中的任一字符 |
[^…] | 不接受括號中的任一字符 |
( ) | 標記一個子表達式的開始和結束位置(字符組)。 |
{m} | 正好匹配 m 次 |
{m,} | 至少匹配 m 次 |
{m,n} | 一個精確地出現次數範圍,m=<出現次數<=n,'{m}'表示出現m次,'{m,}'表示至少出現m次。 |
[..] | 匹配一個能夠是多個字符的排序規則元素。 |
[::] | 匹配字符類。 |
[==] | 匹配等價類。 |
\n | n是1和9之間的數字。匹配在遇到\n以前在()中找到的第n個子表達式。 |
\d | 匹配一個數字字符. |
\D | 匹配一個非數字字符. |
\w | 匹配包括下劃線的任何單詞字符. |
\W | 匹配任何非單詞字符. |
\s | 任一空白字符,包括製表符,換行符,回車符,換頁符和垂直製表符 |
\S | 匹配任何非空白字符. |
\A | 前面的模式必須位於字符串的開始位置,忽略多行標誌 |
\Z | 前面的模式必須位於字符串的未端,或者位於一個換行符前 |
*? | 與前前面的模式匹配零個或多個匹配項。 |
+? | 匹配前面一個模式一次或屢次。 |
?? | 匹配前面一個模式零或一個發生。 |
{n}? | 匹配前面的模式n次。 |
{n,}? | 與前一個模式匹配至少n次 |
{n,m}? | 與前一個模式匹配至少n次,但不超過m次。 |
2. oracle正則表達式的4個函數正則表達式
(1) regexp_likesql
1) 語法express
REGEXP_LIKE ( expression, pattern [, match_parameter ] )
oracle
2) 參數說明函數
expression:字符表達式spa
pattern:正則表達式code
match_parameter:可選的。它容許修改REGEXP_LIKE
條件的匹配行爲。它能夠是如下的組合:regexp
值 | 描述 |
---|---|
'c' | 執行區分大小寫匹配。 |
'i' | 執行不區分大小寫的匹配。 |
'n' | 容許句點字符(. )與換行符匹配。 默認狀況下,句點是通配符。 |
'm' | 表達式假定有多個行,其中^ 是行的開始,$ 是行的結尾,無論表達式中這些字符的位置如何。默認狀況下,表達式假定爲單行。 |
'x' | 忽略空格字符。默認狀況下,空格字符與任何其餘字符同樣匹配。 |
3) 示例orm
--與like的功能相似 select * from fzq where regexp_like(value,'1....60');
(2) regexp_substr
1) 語法
regexp_substr(source_string,pattern[,position[,occurrence[,match_parameter]]])
2) 參數說明
source_string:源串,能夠是常量,也能夠是某個值類型爲串的列。
pattern:正則表達式
position:從源串開始搜索的位置。默認爲1。
occurrence:指定源串中的第幾回出現。默認值1.
match_parameter:省略該參數時:默認區分大小寫、句點不匹配換行符、源串被看做一行。
值 | 說明 |
i' | 用於不區分大小寫的匹配。 |
c' | 用於區分大小寫的匹配。 |
n' | 容許將句點「.」做爲通配符來匹配換行符。若是省略改參數,句點將不匹配換行符。 |
m' | 將源串視爲多行。即將「^」和「$」分別看作源串中任意位置任意行的開始和結束,而不是看做整個源串的開始或結束。 |
3) 示例
SELECT REGEXP_SUBSTR ('hello my phone is 520 ', '[0-9]+') FROM dual; --520
(3) regexp_instr
1) 語法
regexp_instr(source_string,pattern[,position[,occurrence[,return_option[,match_parameter]]]])
2) 參數說明
source_string:源串,能夠是常量,也能夠是某個值類型爲串的列。
pattern:正則表達式
position:可選。搜索在字符串中的開始位置。若是省略,則默認爲1,這是字符串中的第一個位置。
occurrence:可選。它是模式字符串中的第n個匹配位置。若是省略,默認爲1。
return_option:可選 指定Oracle返回的位置。若是指定0,那麼Oracle將返回出現的第一個字符的位置。這是默認的。若是指定1,則Oracle返回字符以後發生的位置。
match_parameter:可選。它容許你修改REGEXP_INSTR功能匹配的行爲。它能夠是如下的組合:
值 | 描述 |
---|---|
'c' | 執行區分大小寫匹配。 |
'i' | 執行不區分大小寫的匹配。 |
'n' | 容許句點字符(. )與換行符匹配。 默認狀況下,句點是通配符。 |
'm' | 表達式假定有多個行,其中^ 是行的開始,$ 是行的結尾,無論表達式中這些字符的位置如何。默認狀況下,表達式假定爲單行。 |
'x' | 忽略空格字符。默認狀況下,空格字符與任何其餘字符同樣匹配。 |
3) 示例
SELECT REGEXP_INSTR ('Itmyhome', 'a|i|o|e|u') FROM dual; -- Result: 6
(4) regexp_replace
1) 語法
regexp_replace(source_string,pattern[,replace_string[,position[,occurrence[,match_parameter]]]])
2) 參數說明
source_string:源串,能夠是常量,也能夠是某個值類型爲串的列。
pattern:正則表達式
replace_string:可選。匹配的模式將被替換replace_string字符串。若是省略replace_string參數,將刪除全部匹配的模式,並返回結果字符串。
position:可選。在字符串中的開始位置搜索。若是省略,則默認爲1。
occurrence:可選。是一個非負整數默認爲1,指示替換操做的發生:若是指定0,那麼全部出現將被替換字符串。若是指定了正整數n,那麼將替換第n次出現。
match_parameter:可選。它容許你修改REGEXP_REPLACE功能匹配的行爲。它能夠是如下的組合:
值 | 描述 |
---|---|
'c' | 執行區分大小寫匹配。 |
'i' | 執行不區分大小寫的匹配。 |
'n' | 容許句點字符(. )與換行符匹配。 默認狀況下,句點是通配符。 |
'm' | 表達式假定有多個行,其中^ 是行的開始,$ 是行的結尾,無論表達式中這些字符的位置如何。默認狀況下,表達式假定爲單行。 |
'x' | 忽略空格字符。默認狀況下,空格字符與任何其餘字符同樣匹配。 |
3) 示例
SELECT REGEXP_REPLACE ('itmyhome is my network id', '^(\S*)', 'luck') FROM dual; Result: luck is my network id