MySQL 中的 REGEXP_INSTR() 函數用於模式匹配。它是一個函數,通過匹配給定的字符串返回子字符串的索引值。如果未找到匹配項,則此函數返回 0。否則,它返回 1。如果表達式或模式為 NULL,則返回 NULL。這裏字符的索引從 1 開始。
用法
以下是在 MySQL 中使用此函數的基本語法:
REGEXP_INSTR(expression, patterns, optional parameters);
參數說明
REGEXP_INSTR() 函數參數的解釋是:
expression:它是一個字符串,我們將通過正則表達式參數和函數對其進行搜索。
patterns:它表示用於匹配的正則表達式字符。
REGEXP_INSTR() 函數使用下麵給出的各種可選參數:
pos:它用於指定表達式中搜索開始的位置。如果我們不指定這個參數,默認是1。
occurrence:它用於指定我們要搜索的匹配項。如果我們不指定這個參數,默認是1。
return_option:用於指定匹配子串返回的位置類型。如果其值為 0,則表示該函數返回匹配子字符串的第一個字符的位置。如果它的值為 1,它將返回匹配子字符串後麵的位置。如果我們不指定這個參數,默認是1。
match_type:使用以下可能的字符進行匹配的字符串。
- c:它代表區分大小寫的匹配。
- i:它代表不區分大小寫的匹配。
- m:它代表一個 multiple-line 模式,允許在字符串中使用行終止符。默認情況下,此函數匹配字符串開頭和結尾的行終止符。
- n:用於修改. (點)字符來匹配行終止符。
- u:代表Unix-only行尾。
讓我們通過各種例子來理解它。
示例
此語句返回表達式中子字符串 'BCA' 的起始索引。如果我們執行該語句,它將返回 1,這是給定字符串的第一個索引。這是因為這裏,我們沒有指定任何可選參數。
mysql> SELECT REGEXP_INSTR ('BCA MCA PGDCA BBA MBA BCA', 'BCA') AS start_index;
請參閱以下輸出:
在該語句中,我們通過修改帶有可選參數position 和occurrence 的查詢,將模式字符串'BCA' 的出現定位到第二次。
mysql> SELECT REGEXP_INSTR ('BCA MCA PGDCA BBA MBA BCA', 'BCA', 1, 2, 0) AS BCA_index_2;
請參閱以下輸出:
在這個語句中,我們使用了 return_option 參數。當我們想要獲取以某種標識符開頭的信息時,此參數很有用。
mysql> SELECT REGEXP_INSTR ('BCA MCA PGDCA BBA MBA BCA', 'BCA', 1, 1, 1) AS post_index;
請參閱以下輸出:
相關用法
- MySQL REGEXP_SUBSTR()用法及代碼示例
- MySQL REGEXP_REPLACE()用法及代碼示例
- MySQL REPEAT()用法及代碼示例
- MySQL REPLACE()用法及代碼示例
- MySQL REVERSE()用法及代碼示例
- MySQL ROUND()用法及代碼示例
- MySQL RPAD()用法及代碼示例
- MySQL ROW_NUMBER()用法及代碼示例
- MySQL RIGHT()用法及代碼示例
- MySQL RADIANS()用法及代碼示例
- MySQL RAND()用法及代碼示例
- MySQL RTRIM()用法及代碼示例
- MySQL POWER()用法及代碼示例
- MySQL LEAD() and LAG()用法及代碼示例
- MySQL IS_IPV4()用法及代碼示例
- MySQL WEEK()用法及代碼示例
- MySQL CHARACTER_LENGTH()用法及代碼示例
- MySQL CURTIME()用法及代碼示例
- MySQL weekofyear()用法及代碼示例
注:本文由純淨天空篩選整理自 MySQL REGEXP_INSTR() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。