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 |
+------------------------------------------------+