久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎么掌握oracle正則表達式

181次閱讀
沒有評論

共計 3396 個字符,預計需要花費 9 分鐘才能閱讀完成。

這篇文章主要介紹“怎么掌握 oracle 正則表達式”,在日常操作中,相信很多人在怎么掌握 oracle 正則表達式問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么掌握 oracle 正則表達式”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!

1. 正則表達式規(guī)范

(1). 匹配字符

字符類匹配的字符舉   例 \d 從0-9的任一數(shù)字 \d\d 匹配 72, 但不匹配 aa 或 7a\D 任一非數(shù)字字符 \D\D\D 匹配 abc, 但不匹配 123\w 任一單詞字符,包括 A -Z,a-z,0- 9 和下劃線 \w\w\w\w 匹配 Ab-2,但不匹配∑£$%* 或 Ab_@\W 任一非單詞字符 \W 匹配@,但不匹配 a\s 任一空白字符,包括制表符,換行符,回車符,換頁符和垂直制表符匹配在 HTML,XML 和其他標準定義中的所有傳統(tǒng)空白字符 \S 任一非空白字符空白字符以外的任意字符, 如 A% 等. 任一字符匹配除換行符以外的任意字符除非設置了 MultiLine 先項 […] 括號中的任一字符 [abc] 將匹配一個單字符,a,b 或 c.[a-z]將匹配從 a 到 z 的任一字符 [^…] 不在括號中的任一字符 [^abc] 將匹配一個 a、b、c 之外的單字符, 可以 a,b 或 A、B、C[a-z]將匹配不屬于 a - z 的任一字符, 但可以匹配所有的大寫字母

(2). 重復字符

重復字符含   義舉   例{n}匹配前面的字符 n 次 x{2}匹配 xx, 但不匹配 x 或 xxx{n,}匹配前面的字符至少 n 次 x{2}匹配 2 個或更多的 x, 如 xxx,xxx..{n,m}匹配前面的字符至少 n 次, 至多 m 次。如果 n 為,此參數(shù)為可選參數(shù) x{2,4}匹配 xx,xxx,xxxx, 但不匹配 xxxxx? 匹配前面的字符次或 1 次,實質上也是可選的 x? 匹配 x 或零個 x + 匹配前面的字符次或多次 x + 匹配 x 或 xx 或大于 0 的任意多個 x * 匹配前面的字符次或更多次 x * 匹配 0,1 或更多個 x

(3). 定位字符

定位字符描   述 ^ 隨后的模式必須位于字符串的開始位置,如果是一個多行字符串,則必須位于行首。對于多行文本(包含回車符的一個字符串)來說,需要設置多行標志 $ 前面的模式必須位于字符串的未端,如果是一個多行字符串,必須位于行尾 \A 前面的模式必須位于字符串的開始位置,忽略多行標志 \z 前面的模式必須位于字符串的未端,忽略多行標志 \Z 前面的模式必須位于字符串的未端,或者位于一個換行符前 \b 匹配一個單詞邊界,也就是一個單詞字符和非單詞字符中間的點。要記住一個單詞字符是 [a-zA-Z0-9] 中的一個字符。位于一個單詞的詞首 \B 匹配一個非單詞字符邊界位置,不是一個單詞的詞首

(4). 分組字符

分組字符定   義舉   例()此字符可以組合括號內模式所匹配的字符,它是一個捕獲組,也就是說模式匹配的字符作為最終設置了 ExplicitCapture 選項――默認狀態(tài)下字符不是匹配的一部分輸入字符串為:ABC1DEF2XY 匹配 3 個從 A 到 Z 的字符和 1 個數(shù)字的正則表達式:([A-Z]{3}\d)將產(chǎn)生兩次匹配:Match   1=ABC1;Match 2=DEF2 每次匹配對應一個組:Match2 的第一個組=ABC;Match3 的第 1 個組=DEF 有了反向引用,就可以通過它在正則表達式中的編號以及 C# 和類 Group,GroupCollection 來訪問組。如果設置了 ExplicitCapture 選項,就不能使用組所捕獲的內容

(5). 字符簇: 

[[:alpha:]] 任何字母。

[[:digit:]] 任何數(shù)字。

[[:alnum:]] 任何字母和數(shù)字。

[[:space:]] 任何白字符。

[[:upper:]] 任何大寫字母。

[[:lower:]] 任何小寫字母。

[[:punct:]] 任何標點符號。

[[:xdigit:]] 任何 16 進制的數(shù)字,相當于[0-9a-fA-F]。

(6). 優(yōu)先級

轉義符

(), (?:), (?=), [] 圓括號和方括號

*, +, ?, {n}, {n,}, {n,m} 限定符

^, $, anymetacharacter 位置和順序

|“或”操作

2. 常用函數(shù)

(1).regexp_like(expression, regexp)

返回值為一個布爾值。如果第一個參數(shù)匹配第二個參數(shù)所代表的正則表達式,那么將返回真,否則將返回假。

(2).regexp_instr(expression, regexp, startindex, times)

返回找到的匹配字符串的位置.

(3).regexp_substr(expression, regexp)

返回第一個字符串參數(shù)中,與第二個正則表達式參數(shù)相匹配的子字符串。

(4).regexp_replace(expression, regexp, replacement)

將 expression 中的按 regexp 匹配到的部分用 replacement 代替.

(5).REGEXP_COUNT (source_char, pattern [, position [, match_param]])

REGEXP_COUNT 返回 pattern 在 source_char 串中出現(xiàn)的次數(shù)。如果未找到匹配,則函數(shù)返回 0。position 變量告訴 Oracle 在源串的什么位置開始搜索。在開始位置之后每出現(xiàn)一次模式,都會使計數(shù)結果增加 1。

match_param 變量支持下面幾個值:

‘i’用于不區(qū)分大小寫的匹配

‘c’用于區(qū)分大小寫的匹配

‘n’允許句點 (.) 作為通配符去匹配換行符。如果省略該參數(shù),則句點將不匹配換行符

‘m’將源串視為多行。即 Oracle 將 ^ 和 $ 分別看作源串中任意位置任何行的開始和結束,而不是僅僅看作整個源串的開始或結束。如果省略該參數(shù),則 Oracle 將源串看作一行。

‘x’忽略空格字符。默認情況下,空格字符與自身相匹配。

3. 示例:

(1). 查找 id 為 4 位數(shù)的記錄

select data_object_id,object_name from HH where regexp_like(data_object_id, ^[[:digit:]]{3}$

select data_object_id,object_name from HH where regexp_like(data_object_id, ^\d{3}$

(2). 查找對象名包含英文和下劃線的記錄

select object_name from HH where regexp_like(object_name, ^[a-z|A-Z|_]*$ )

(3). 對象名以 a 或 A 開頭的記錄

select object_name from HH where regexp_like(object_name, ^[a|A] )

(4). 查找對象名為全英文,并且以 N 結尾

select object_name from HH where regexp_like(object_name, ^[a-z|A-Z]*N$ )

(5). 查找以非數(shù)字開頭的員工信息

select object_name from HH where regexp_like(object_name, ^[^\d]

(6). 查找對象名中第一個特殊字符的位置

select object_name,regexp_instr(object_name, [^[:alnum:]] ,1) from HH;

(7). 從第三個字符開始,查找員工編號中第二個非數(shù)字字符的位置

select object_name,regexp_instr(object_name, [^[:alnum:]] ,3,2) from HH

(8). 返回從第二個字符開始檢索,并且對象名以 L 開頭 $ 結尾的子串

select object_name,regexp_substr(object_name, L.*\$$ ,2) from HH;

(9). 把對象名中所有非字母字符替換為“A”

select regexp_replace(object_name, [^a-z|A-Z] , A ) from HH;

(10). 查詢字符串中 was 的出現(xiàn)次數(shù),忽略大小寫。

select regexp_count (THE PRO-NIECE WAS BORN TODAY, SO EXCITING! , Was , 1, i) from dual;

到此,關于“怎么掌握 oracle 正則表達式”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注丸趣 TV 網(wǎng)站,丸趣 TV 小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

正文完
 
丸趣
版權聲明:本站原創(chuàng)文章,由 丸趣 2023-07-20發(fā)表,共計3396字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網(wǎng)絡搜集發(fā)布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 新田县| 许昌县| 鄂州市| 英山县| 海南省| 辉南县| 凤山县| 贵南县| 沿河| 双桥区| 靖西县| 志丹县| 正阳县| 花莲县| 安西县| 哈密市| 湘阴县| 外汇| 玉田县| 兴安县| 广河县| 新丰县| 山东省| 洮南市| 昭通市| 晋江市| 定州市| 河源市| 蚌埠市| 车致| 旅游| 阳曲县| 巴马| 淮阳县| 古田县| 堆龙德庆县| 龙州县| 土默特左旗| 宁强县| 伊春市| 双桥区|