真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Oracle中正則怎么 oracle 正則

Oracle正則表達(dá)式

Oracle g數(shù)據(jù)庫(kù)內(nèi)建了符合IEEE POSIX (Portable Operating System for Unix)標(biāo)準(zhǔn)的正則表達(dá)式 熟練使用正則表達(dá)式 可以寫(xiě)出簡(jiǎn)潔 強(qiáng)大的SQL語(yǔ)句

寧江網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),寧江網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為寧江上1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的寧江做網(wǎng)站的公司定做!

正則表達(dá)式有幾個(gè)優(yōu)點(diǎn)優(yōu)于常見(jiàn)的LIKE操作符和INSTR SUBSTR及REPLACE 函數(shù)的 這些傳統(tǒng)的SQL 函數(shù)不便于進(jìn)行模式匹配 只有LIKE 操作符通過(guò)使用%和_字符匹配 但LIKE不支持表達(dá)式的重復(fù) 復(fù)雜的更替 字符范圍 字符列表和POSIX 字符類(lèi)等等

元字符(Meta Character)

Sql代碼

^??????????? 使表達(dá)式定位至一行的開(kāi)頭

$??????????? 使表達(dá)式定位至一行的末尾

*??????????? 匹配 次或更多次

???????????? 匹配 次或 次

+??????????? 匹配 次或更多次

{m}????????? 正好匹配 m 次

{m }???????? 至少匹配 m 次

{m n}?????? 至少匹配 m 次但不超過(guò) n 次

[:alpha:]??? 字母字符

[:lower:]??? 小寫(xiě)字母字符

[:upper:]??? 大寫(xiě)字母字符

[:digit:]??? 數(shù)字

[:alnum:]??? 字母數(shù)字字符

[:space:]??? 空白字符(禁止打印) 如回車(chē)符 換行符 豎直制表符和換頁(yè)符[:punct:]??? 標(biāo)點(diǎn)字符

[:cntrl:]??? 控制字符(禁止打?。?/p>

[:print:]??? 可打印字符 | 分隔替換選項(xiàng) 通常與分組操作符 () 一起使用

( )????????? 將子表達(dá)式分組為一個(gè)替換單元 量詞單元或后向引用單元

[char]?????? 字符列表

Oracle g提供了四個(gè)regexp function: REGEXP_LIKE REGEXP_REPLACE REGEXP_INSTR REGEXP_SUBSTR

Sql代碼

REGEXP_LIKE 比較一個(gè)字符串是否與正則表達(dá)式匹配

(srcstr pattern [ match_option])

REGEXP_INSTR 在字符串中查找正則表達(dá)式 并且返回匹配的位置

(srcstr pattern [ position [ occurrence [ return_option [ match_option]]]])

REGEXP_SUBSTR 返回與正則表達(dá)式匹配的子字符串

(srcstr pattern [ position [ occurrence [ match_option]]])

REGEXP_REPLACE 搜索并且替換匹配的正則表達(dá)式

(srcstr pattern [ replacestr [ position [ occurrence [ match_option]]]])? 其中各參數(shù)的含義為:

Sql代碼

srcstr:??????? 被查找的字符數(shù)據(jù)

pattern:?????? 正則表達(dá)式

occurrence:??? 出現(xiàn)的次數(shù) 默認(rèn)為

position:????? 開(kāi)始位置

return_option: 默認(rèn)值為 返回該模式的起始位置 值為 則返回符合匹配條件的下一個(gè)字符的起始位置

replacestr:??? 用來(lái)替換匹配模式的字符串

match_option:? 匹配方式選項(xiàng) 缺省為c

c case sensitive

I case insensitive

n ( )匹配任何字符(包括newline)

m 字符串存在換行的時(shí)候被作為多行處理

下面通過(guò)一些具體的例子來(lái)說(shuō)明如何使用這四個(gè)函數(shù) 首先創(chuàng)建一個(gè)測(cè)試數(shù)據(jù)表

Sql代碼

SQL create table person (

first_name varchar( )

last_name varchar( )

email varchar( )

zip varchar( ));

Table created

SQL insert into person values ( Steven Chen );

row created

SQL insert into person values ( James Li || chr( ) || b d f );

row created

SQL mit;

Commit plete

SQL select * from person;

FIRST_NAME LAST_NAME? EMAIL??????????????? ZIP

Steven???? Chen?????? ???????

James????? Li???????? ????? b d f

REGEXP_LIKE

Sql代碼

SQL select zip as invalid_zip from person where regexp_like(zip [^[:digit:]] );

INVALID_ZIP

b d f

SQL select first_name from person where regexp_like(first_name ^S *n$ );

FIRST_NAME

Steven

SQL select first_name from person where regexp_like(first_name ^s *n$ );

no rows selected

SQL select first_name from person where regexp_like(first_name ^s *n$ c );

no rows selected

SQL select first_name from person where regexp_like(first_name ^s *n$ i );

FIRST_NAME

Steven

SQL select email from person where regexp_like(email ^james *$ );

no rows selected

SQL select email from person where regexp_like(email ^james *$ n );

EMAIL

SQL select email from person where regexp_like(email ^li *$ );

no rows selected

SQL select email from person where regexp_like(email ^li *$ m );

EMAIL

REGEXP_INSTR

Sql代碼

查找zip中第一個(gè)非數(shù)字字符的位置

SQL select regexp_instr(zip [^[:digit:]] ) as position from person;

POSITION

從第三個(gè)字符開(kāi)始 查找zip中第二個(gè)非數(shù)字字符的位置

SQL select regexp_instr(zip [^[:digit:]] ) as position from person;

POSITION

從第三個(gè)字符開(kāi)始 查找zip中第二個(gè)非數(shù)字字符的下一個(gè)字符位置

SQL select regexp_instr(zip [^[:digit:]] ) as position from person;

POSITION

REGEXP_SUBSTR

Sql代碼

SQL select regexp_substr(zip [^[:digit:]] ) as zip from person;

ZIP

b

SQL select regexp_substr(zip [^[:digit:]] ) as zip from person;

ZIP

f

REGEXP_REPLACE

Sql代碼

把zip中所有非數(shù)字字符替換為

SQL update person set zip=regexp_replace(zip [^[:digit:]] )

where regexp_like(zip [^[:digit:]] );

row updated

SQL select zip from person;

ZIP

后向引用(backreference)

后向引用是 一個(gè)很有用的特性 它能夠把子表達(dá)式的匹配部分保存在臨時(shí)緩沖區(qū)中 供以后重用 緩沖區(qū)從左至右進(jìn)行編號(hào) 并利用 \digit 符號(hào)進(jìn)行訪問(wèn) 子表達(dá)式用一組圓括號(hào)來(lái)顯示 利用后向引用可以實(shí)現(xiàn)較復(fù)雜的替換功能

Sql代碼

SQL select regexp_replace( Steven Chen ( *) ( *) \ \ ) as reversed_name from dual;

REVERSED_NAME

Chen Steven

在DDL中也可以正則表達(dá)式 比如Constraint index view

Sql代碼

SQL alter table person add constraint constraint_zip check (regexp_like(zip ^[[:digit:]]+$ ));

lishixinzhi/Article/program/Oracle/201311/18745

oracle怎么使用正則表達(dá)式列入兩個(gè)固定字符中間的數(shù)據(jù)

oracle使用正則表達(dá)式列入兩個(gè)固定字符中間的數(shù)據(jù)方法:

1、正則表達(dá)式的使用需要用到關(guān)鍵字REGEXP,用定義一組字符,表示匹配125三個(gè)字符。

2、digit表示匹配任意數(shù)字,DOT表示ALL表示所有,連起來(lái)匹配包括換行符默認(rèn)模式下.是不能匹配行符n的。

在oracle中如何使用正則函數(shù)表達(dá)式截取每一行中的每一個(gè)單元格中有多行數(shù)據(jù)的第一列?

函數(shù)格式如下:

function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)

__srcstr :需要進(jìn)行正則處理的字符串

__pattern :進(jìn)行匹配的正則表達(dá)式

__position :起始位置,從第幾個(gè)字符開(kāi)始正則表達(dá)式匹配(默認(rèn)為1)

__occurrence :標(biāo)識(shí)第幾個(gè)匹配組,默認(rèn)為1

__modifier :模式('i'不區(qū)分大小寫(xiě)進(jìn)行檢索;'c'區(qū)分大小寫(xiě)進(jìn)行檢索。默認(rèn)為'c'。)

oracle 正則表達(dá)式如何提取AABAAB類(lèi)型的數(shù)據(jù)?

用 regexp_like這個(gè)函數(shù)來(lái)解決,正則表達(dá)式為:[[:punct:]]+這個(gè)正則可以找出任何標(biāo)點(diǎn)符號(hào)。

查詢value中包含任何標(biāo)點(diǎn)符號(hào)的記錄如下:

select * from xxx where regexp_like(value,'[[:punct:]]+');

POSIX 正則表達(dá)式由標(biāo)準(zhǔn)的元字符(metacharacters)所構(gòu)成: '$' 匹配輸入字符串的結(jié)尾位置。如果設(shè)置了 RegExp 對(duì)象的 Multiline 屬性,則 $ 也匹配 '\n' 或 '\r'。 '?' 匹配前面的子表達(dá)式零次或一次。 '*' 匹配前面的子表達(dá)式零次或多次。

'|' 指明兩項(xiàng)之間的一個(gè)選擇。例子'^([a-z]+|[0-9]+)$'表示所有小寫(xiě)字母或數(shù)字組合成的 '( )' 標(biāo)記一個(gè)子表達(dá)式的開(kāi)始和結(jié)束位置。 '{m,n}' 一個(gè)精確地出現(xiàn)次數(shù)范圍,m=出現(xiàn)次數(shù)=n,'{m}'表示出現(xiàn)m次,'{m,}'表示至少出現(xiàn)m次。

\num 匹配 num,其中 num 是一個(gè)正整數(shù)。對(duì)所獲取的匹配的引用。 [[:alpha:]] 任何字母。

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

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

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

[[:upper:]] 任何大寫(xiě)字母。

[[:lower:]] 任何小寫(xiě)字母。

[[:punct:]] 任何標(biāo)點(diǎn)符號(hào)。

[[:xdigit:]] 任何16進(jìn)制的數(shù)字,相當(dāng)于[0-9a-fA-F]。 \轉(zhuǎn)義符 *, +, ?, {n}, {n,}, {n,m} 限定符^, $, anymetacharacter 位置和順序。


網(wǎng)站欄目:Oracle中正則怎么 oracle 正則
分享鏈接:http://weahome.cn/article/hhgcsd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部