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

正則函數

本文介紹AnalyticDB MySQL版集群支持的正則函數。

前提條件

AnalyticDB MySQL版集群的內核版本需為3.1.5.10及以上版本。

說明

如何查看集群的內核版本,請參見如何查看實例版本信息

REGEXP_INSTR

regexp_instr(source, pattern[, position[, occurrence[, option]]] )
  • 命令說明:字符串source中搜索匹配正則表達式的子字符串,并返回該子字符串在字符串source中的位置。如果指定position,則從第position個字符開始匹配,默認為1;如果指定occurrence,則返回第occurrence個匹配的位置,默認為1。option可以是0或1,默認為0,option為0時返回匹配子字符串的起始位置;option為1時返回匹配子字符串結束位置的下一個字符位置。

  • 輸入值說明:

    • source:待搜索的字符串,取值類型為VARCHAR。

    • pattern:正則表達式。

    • position:表示從source的第一個字符開始匹配,position默認為1。取值類型為BIGINT。

    • occurrence:表示返回第一次匹配的子字符串,occurrence默認為1。取值類型為BIGINT。

    • option:表示指定返回的位置,option可以是0或1,默認為0。取值類型為BIGINT。

  • 返回值說明:返回BIGINT類型。沒有匹配到字符串時,返回0。

  • 示例:

    • 示例1

      SELECT REGEXP_INSTR('dog cat dog', 'dog') as res;

      返回結果如下。

      +-----+
      | res |
      +-----+
      |   1 |
      +-----+
    • 示例2

      SELECT REGEXP_INSTR('dog cat dog', 'dog', 1, 2) as res;

      返回結果如下。

      +-----+
      | res |
      +-----+
      |   9 |
      +-----+
    • 示例3

      SELECT REGEXP_INSTR('dog cat dog', 'dog', 1, 1, 1) as res;

      返回結果如下。

      +-----+
      | res |
      +-----+
      |   4 |
      +-----+

REGEXP_MATCHES

regexp_matches(source, pattern[, flag])
  • 命令說明:返回字符串source中匹配正則表達式的子字符串構成的數組。如果包含flag 'g',則返回所有匹配的子字符串結果,數組中可有多個元素;否則只返回匹配的第一個結果,數組中只有一個結果。如果pattern中包含帶括號的子正則表達式,那么結果數組中的元素為各個子正則表達式對應的子字符串,否則為單個匹配pattern的子字符串。

  • 輸入值說明:

    • source:待搜索的字符串,取值類型為VARCHAR。

    • pattern:正則表達式。

    • flag:標志一個或多個控制函數的字符,取值類型為VARCHAR。

  • 返回值說明:返回array(array(VARCHAR))類型。沒有匹配到字符串時,返回空數組。

  • 示例:

    • 示例1

      SELECT regexp_matches('foobarbequebaz', '(bar)(beque)');

      返回結果如下。

      +---------------------+
      | regexp_matches      |
      +---------------------+
      | [["bar","beque"]]   |
    • 示例2

       SELECT regexp_matches('foobarbequebaz', 'barbeque');

      返回結果如下。

      +---------------------+
      | regexp_matches      |
      +---------------------+
      | [["barbeque"]]      |        
    • 示例3

      SELECT regexp_matches('foobarbequebazilbarfbonk', '(b[^b]+)(b[^b]+)', 'g');

      返回結果如下。

      +------------------------------------------+
      | regexp_matches                           |
      +------------------------------------------+
      | [["bar","beque"], ["bazil","barf"]]      |

REGEXP_REPLACE

regexp_replace(source, pattern, replacement[, position[, occurrence]])
  • 命令說明:將字符串source中匹配pattern的子字符串替換為replacement。如果指定position,則從第position個字符開始匹配和替換,默認為1;如果指定occurrence,則替換第occurrence個匹配的子字符串,默認為0,表示替換全部。

  • 輸入值說明:

    • source:待搜索的字符串,取值類型為VARCHAR。

    • pattern:正則表達式。

    • replacement:將匹配pattern的字符串替換后的字符串。取值類型為VARCHAR。

    • position:表示從source的第一個字符開始匹配和替換,position默認為1。取值類型為BIGINT。

    • occurrence:表示第occurrence次匹配的字符串替換為replacement,occurrence默認為0。取值類型為BIGINT。

  • 返回值說明:返回VARCHAR類型。沒有匹配到字符串時,返回原字符串。

  • 示例:

    • 示例1

      SELECT REGEXP_REPLACE('abc def ghi', '[a-z]+', 'X') as res;

      返回結果如下。

      +-------+
      | res   |
      +-------+
      | X X X |
      +-------+
    • 示例2

      SELECT REGEXP_REPLACE('abc def ghi', '[a-z]+', 'X', 1, 3) as res;

      返回結果如下。

      +-----------+
      | res       |
      +-----------+
      | abc def X |
      +-----------+

REGEXP_SUBSTR

regexp_substr(source, pattern[, position[, occurrence]])
  • 命令說明:返回字符串source中匹配正則表達式的子字符串。如果指定position,則從第個字符開始匹配,position默認為1;如果指定occurrence,則返回第occurrence個匹配的子字符串,occurrence默認為1。

  • 輸入值說明:

    • source:待搜索的字符串,取值類型為VARCHAR。

    • pattern:正則表達式。

    • position:表示從source的第一個字符開始匹配,position默認為1。取值類型為BIGINT。

    • occurrence:表示返回第一次匹配的子字符串,occurrence默認為1。取值類型為BIGINT。

  • 返回值說明:返回VARCHAR類型。沒有匹配到字符串時,返回NULL。

  • 示例:

    • 示例1

      SELECT REGEXP_SUBSTR('abc def ghi', '[a-z]+', 1, 3) as res;

      返回結果如下。

      +------+
      | res  |
      +------+
      | ghi  |
      +------+
    • 示例2

      SELECT REGEXP_SUBSTR('abc def ghi', '[a-z]+') as res;

      返回結果如下。

      +------+
      | res  |
      +------+
      | abc  |
      +------+