日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

RLIKE字符匹配

更新時(shí)間:

RLIKE是MaxCompute SQL提供的一種基于PCRE(Perl Compatible Regular Expressions)規(guī)范的操作符,支持在MaxCompute SQL語(yǔ)句中對(duì)文本進(jìn)行更精確、更復(fù)雜的模式匹配或替換。本文介紹了RLIKE支持的元字符、POSIX字符組、中文字符組、轉(zhuǎn)義字符和相關(guān)字符的使用示例。

元字符

RLIKE操作符支持一系列元字符,下表列出了常見的元字符:

元字符

說(shuō)明

^

行首。

$

行尾。

.

任意字符。

*

匹配前面的子表達(dá)式0次或多次。

+

匹配前面的子表達(dá)式1次或多次。

?

匹配前面的子表達(dá)式0次或1次。

?

匹配修飾符,當(dāng)該字符跟在任何一個(gè)其他限制符 (* 、+、?、 {n}、 {n,}、 {n,m})后面時(shí),匹配模式為非貪婪模式。非貪婪模式盡可能少的匹配所搜索的字符串, 而默認(rèn)的貪婪模式則盡可能多的匹配所搜索的字符串。

A|B

A或B。

(abc)*

匹配abc序列0次或多次。

{n}或{m,n}

匹配的次數(shù)。

[ab]

匹配括號(hào)中的任一字符。模式匹配a或b。

[a-d]

匹配a、b、c、d任一字符。

[^ab]

^表示非,匹配任一非a非b的字符。

[::]

詳情請(qǐng)參見下文的POSIX字符組。

\

轉(zhuǎn)義符,詳情請(qǐng)參見下文的轉(zhuǎn)義符。

\n

n為數(shù)字1~9,表示后向引用。

\d

數(shù)字。

\D

非數(shù)字。

  • 關(guān)于更多的正則表達(dá)式的使用說(shuō)明,詳情請(qǐng)參見PCRE官網(wǎng)文檔。

  • 如果匹配結(jié)果不符合預(yù)期,可能是需要做轉(zhuǎn)義,詳情請(qǐng)參見轉(zhuǎn)義字符。

使用示例

  • 示例:匹配字符串的開頭和結(jié)尾

    select 'aa123bb' rlike '^a';
    -- 匹配字符串a(chǎn)a123bb的開頭是否為a,返回true
    
    select 'aa123bb' rlike '^a.*b$';
    -- 匹配字符串a(chǎn)a123bb的開頭是否為a、結(jié)尾是否為b,運(yùn)行返回true
    
    select 'footerbar' rlike 'foo(.*?)(bar)';
    -- 返回true
  • 示例:使用轉(zhuǎn)義符匹配含特殊字符的字符串

    select 'a+b' rlike 'a\\\+b';
    -- 返回true
  • 示例:匹配任一字符

    select 'cc123bb' rlike '^[a-d]';
    -- 匹配字符串cc123bb的開頭是否是a~d中的任意一個(gè)字符,返回true
  • 示例:匹配數(shù)字、非數(shù)字字符

    select '123bb' rlike '^\\\d';
    -- 匹配字符串123bb的開頭是否是數(shù)字字符,返回true
    
    select 'cc123bb' rlike '^\\\D';
    -- 匹配字符串cc123bb的開頭是否是非數(shù)字字符,返回true

字符組

POSIX字符組

字符組

說(shuō)明

范圍

[[:alnum:]]

字母字符和數(shù)字字符

[a-zA-Z0-9]

[[:alpha:]]

字母

[a-zA-Z]

[[:ascii:]]

ASCII字符

[\x00-\x7F]

[[:blank:]]

空格字符和制表符

[ \t]

[[:cntrl:]]

控制字符

[\x00-\x1F\x7F]

[[:digit:]]

數(shù)字字符

[0-9]

[[:graph:]]

空白字符之外的字符

[\x21-\x7E]

[[:lower:]]

小寫字母字符

[a-z]

[[:print:]]

[:graph:]和空白字符

[\x20-\x7E]

[[:punct:]]

標(biāo)點(diǎn)符號(hào)

[][!”#$%&’()*+,./:;<=>? @\^_`{|}~-]

[[:space:]]

空白字符

[ \t\r\n\v\f]

[[:upper:]]

大寫字母字符

[A-Z]

[[:xdigit:]]

十六進(jìn)制字符

[A-Fa-f0-9]

說(shuō)明

MaxCompute不支持\f\v,具體支持的轉(zhuǎn)義符請(qǐng)參見轉(zhuǎn)義字符。

中文字符組

中文字符組細(xì)分

范圍

包括漢字在內(nèi)的雙字節(jié)字符

[^\\x{00}-\\x{ff}]

中文字符

[\\x{4e00}-\\x{9fa5}]

中文標(biāo)點(diǎn)

中文標(biāo)點(diǎn)無(wú)統(tǒng)一的編碼范圍,您可以在搜索引擎上搜索中文標(biāo)點(diǎn)符號(hào)Unicode碼,然后結(jié)合運(yùn)算符來(lái)逐個(gè)排除。

例如句號(hào)(。)對(duì)應(yīng)正則表達(dá)式為[\\x{3002}]。執(zhí)行select * from values ('你好。'),('nihao!') t(d) where d rlike '[\\x{3002}]';返回結(jié)果為你好。。

說(shuō)明

如果要匹配單引號(hào),可以用unicode0027,對(duì)應(yīng)正則表達(dá)式為 [\\x{0027}]。

轉(zhuǎn)義符

RLIKE操作符支持反斜線\作為轉(zhuǎn)義符,因此正則表達(dá)式的模式中出現(xiàn)的\都要進(jìn)行二次轉(zhuǎn)義。

使用示例

  • 示例1

    正則表達(dá)式要匹配字符串a+b,其中+是正則中的一個(gè)特殊字符,因此要用轉(zhuǎn)義的方式表達(dá)。在正則表達(dá)式引擎中的表達(dá)方式是a\\+b,由于還要解釋一層轉(zhuǎn)義,因此能夠匹配該字符串的表達(dá)式是a\\\+b。

    select 'a+b' rlike 'a\\\+b';
    
    +------+
    | _c1  |
    +------+
    | true |
    +------+
  • 示例2

    在某些情況下,如果要匹配字符\, 在正則表達(dá)式引擎中\是一個(gè)特殊字符,因此要表示為\\,由于還要解釋一層轉(zhuǎn)義,因此寫成\\\\。

    select 'a\\b', 'a\\b' rlike 'a\\\b';
    +-----+------+
    | _c0 | _c1  |
    +-----+------+
    | a\b | false |
    +-----+------+
    
    select 'a\\b', 'a\\b' rlike 'a\\\\b';
    +-----+------+
    | _c0 | _c1  |
    +-----+------+
    | a\b | true |
    +-----+------+
    說(shuō)明

    在MaxCompute SQL中寫a\\b,而在輸出結(jié)果中顯示a\b,同樣是因?yàn)镸axCompute會(huì)對(duì)表達(dá)式進(jìn)行轉(zhuǎn)義。

  • 示例3

    如果字符串中有制表符TAB,系統(tǒng)在讀入\t這兩個(gè)字符時(shí),已經(jīng)將其存為一個(gè)字符,因此在正則表達(dá)式的模式中它也是一個(gè)普通的字符。

    select 'a\tb', 'a\tb' rlike 'a\tb';
    
    +---------+------+
    | _c0     | _c1  |
    +---------+------+
    | a     b | true |
    +---------+------+