# **REGEXP\_EXTRACT**

返回与正则表达式匹配的子字符串。

此函数会在指定的字符串中查找符合正则表达式的内容， **index** 为空默认返回第一个匹配的子字符串，未匹配则返回空字符串。

## 语法{#grammar}

REGEXP\_EXTRACT(**str**, **pattern**, **\[index]**)

- **str**：给定的字符串对象
- **pattern**：一个用于匹配字符串的正则表达式，正则表达式中的`\`需要连续输入2个，第一个`\`表示转义。[正则表达式的语法参考](https://www.runoob.com/regexp/regexp-intro.html)
- **index**：可选，匹配的子字符串索引， 1 表示返回第一个匹配的子字符串

**示例地址：** [REGEXP\_EXTRACT](https://demo.succbi.com/v5/bi/regexp_extract)

## 示例{#example}

1. `REGEXP_EXTRACT("abc123","[0-9]+")` 提取数字，返回字符串`123`，`index`为空默认返回第一个匹配项
2. `REGEXP_EXTRACT("ab4c123","[0-9]",2)` 提取第二个匹配的数字，返回字符串`1`
3. `REGEXP_EXTRACT("12.34","\\d*(?=\\.)")` 提取小数部分的整数部分，返回字符串`12`
4. `REGEXP_EXTRACT("我Cd123","[A-Z][a-z]")` 提取字母，返回字符串`Cd`
5. `REGEXP_EXTRACT("123小明AB","[\\u4e00-\\u9fa5]+")` 提取人名，返回字符串`小明`
6. `REGEXP_EXTRACT("13487598742","[0-9]{4}$")` 提取手机号后四位，返回字符串`8742`
7. `REGEXP_EXTRACT("210502198412020944","\\d{8}(?=\\d{4}$)")` 提取身份证的出生年月，返回字符串`19841202`
8. `REGEXP_EXTRACT("月亮在5月12日最亮","\\d{1,2}月\\d{1,2}日")` 提取文本中的日期，返回字符串`5月12日`
9. `REGEXP_EXTRACT("在https://www.baidu.com中下载","https?://.+?(com|cn|net).*?")` 提取文本中的网址，返回字符串`https://www.baidu.com`
10. `REGEXP_EXTRACT("我的邮箱是xxxx@qq.com","[\\w]+(\\.[\\w]+)*@[\\w]+(\\.[\\w]*)")` 提取文本中的qq邮箱，返回字符串`xxxx@qq.com`
11. `REGEXP_EXTRACT("ip地址是192.168.2.3","(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}")` 提取文本中的ipv4地址，返回字符串`192.168.2.3`
