MySQL REGEXP_SUBSTR() 函数使用指南
MySQL REGEXP_SUBSTR() 函数从一个字符串获取和指定模式匹配的子串并返回。
默认情况下, REGEXP_SUBSTR() 函数执行不区分大小写的匹配。
REGEXP_SUBSTR() 语法
这里是 MySQL REGEXP_SUBSTR() 的语法:
REGEXP_SUBSTR(str, regexp)
REGEXP_SUBSTR(str, regexp, position)
REGEXP_SUBSTR(str, regexp, position, occurrence)
REGEXP_SUBSTR(str, regexp, position, occurrence, mode)
参数
str- 必需的。一个字符串。
regexp- 必需的。正则表达式。
position- 可选的。开始搜索的起始位置。默认为
1。 occurrence- 可选的。第几次匹配的内容。默认为
1。 mode- 可选的。执行匹配采用的模式。
匹配模式可以使用下面值中的一个或多个:
c: 区分大小写i: 区分大小写m: 多行匹配模式n: 点.可以匹配行结束u: 仅限 unix 行结尾
如果匹配模式存在矛盾的选项,则以最右边的为准。
返回值
REGEXP_SUBSTR() 函数在 str 中搜索和正则表达式 regexp 匹配的子字符串并返回。如果没有匹配到,则返回 NULL。
如果 str 或者 regexp 为 NULL,REGEXP_SUBSTR() 将返回 NULL。
REGEXP_SUBSTR() 示例
以下语句用来找出字符串 '123 abc 456 def' 中的第一组连续的数字。
SELECT REGEXP_SUBSTR('123 abc 456 def', '\\d+');
+------------------------------------------+
| REGEXP_SUBSTR('123 abc 456 def', '\\d+') |
+------------------------------------------+
| 123 |
+------------------------------------------+如果想找出字符串 '123 abc 456 def' 中的第二组连续的数字,请使用下面的语句:
SELECT REGEXP_SUBSTR('123 abc 456 def', '\\d+', 1, 2);
+------------------------------------------------+
| REGEXP_SUBSTR('123 abc 456 def', '\\d+', 1, 2) |
+------------------------------------------------+
| 456 |
+------------------------------------------------+