Skip to content

Commit 0a275c6

Browse files
💬Generate LLM translations (#1706)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 53fa751 commit 0a275c6

File tree

1 file changed

+36
-8
lines changed

1 file changed

+36
-8
lines changed

docs/cn/sql-reference/20-sql-functions/06-string-functions/regexp-substr.md

+36-8
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,35 @@
22
title: REGEXP_SUBSTR
33
---
44

5-
返回字符串 `expr` 中与正则表达式 `pat` 匹配的子字符串,如果没有匹配则返回 NULL。如果 `expr``pat` 为 NULL,则返回值为 NULL。
5+
返回字符串 `expr` 中与正则表达式模式 `pat` 匹配的子串,若无匹配则返回 NULL。若 expr 或 pat 为 NULL,返回值也为 NULL。
6+
7+
- REGEXP_SUBSTR 不支持提取捕获组(由括号 `()` 定义的子模式)。它返回整个匹配的子串而非特定的捕获组。
8+
9+
```sql
10+
SELECT REGEXP_SUBSTR('abc123', '(\w+)(\d+)');
11+
-- 返回 'abc123'(整个匹配项),而非 'abc' 或 '123'。
12+
13+
-- 替代方案:使用 SUBSTRING 和 REGEXP_INSTR 等字符串函数手动提取所需部分:
14+
SELECT SUBSTRING('abc123', 1, REGEXP_INSTR('abc123', '\d+') - 1);
15+
-- 返回 'abc'(提取数字前的部分)。
16+
SELECT SUBSTRING('abc123', REGEXP_INSTR('abc123', '\d+'));
17+
-- 返回 '123'(提取数字部分)。
18+
```
19+
20+
- REGEXP_SUBSTR 不支持 `e` 参数(Snowflake 中用于提取捕获组)或 `group_num` 参数来指定返回哪个捕获组。
21+
22+
```sql
23+
SELECT REGEXP_SUBSTR('abc123', '(\w+)(\d+)', 1, 1, 'e', 1);
24+
-- 错误:Databend 不支持 'e' 参数或捕获组提取。
25+
26+
-- 替代方案:使用 SUBSTRING 和 LOCATE 等字符串函数手动提取所需子串,或在查询前通过外部工具(如 Python)预处理数据以提取捕获组。
27+
SELECT SUBSTRING(
28+
REGEXP_SUBSTR('letters:abc,numbers:123', 'letters:[a-z]+,numbers:[0-9]+'),
29+
LOCATE('letters:', 'letters:abc,numbers:123') + 8,
30+
LOCATE(',', 'letters:abc,numbers:123') - (LOCATE('letters:', 'letters:abc,numbers:123') + 8)
31+
);
32+
-- 返回 'abc'
33+
```
634

735
## 语法
836

@@ -12,13 +40,13 @@ REGEXP_SUBSTR(<expr>, <pat[, pos[, occurrence[, match_type]]]>)
1240

1341
## 参数
1442

15-
| 参数 | 描述 |
16-
|------------|-----------------------------------------------------------------------------------------------------------|
17-
| expr | 要匹配的字符串表达式 |
18-
| pat | 正则表达式 |
19-
| pos | 可选。在 `expr` 中开始搜索的位置。如果省略,默认值为 1。 |
20-
| occurrence | 可选。要搜索的匹配项的出现次数。如果省略,默认值为 1。 |
21-
| match_type | 可选。指定如何执行匹配的字符串。其含义与 REGEXP_LIKE() 中的描述相同。 |
43+
| 参数 | 描述 |
44+
|-------------|---------------------------------------------------------------------------------------------------|
45+
| expr | 要匹配的字符串表达式 |
46+
| pat | 正则表达式 |
47+
| pos | 可选。在 expr 中开始搜索的位置。若省略,默认为 1。 |
48+
| occurrence | 可选。要搜索的第几次匹配。若省略,默认为 1。 |
49+
| match_type | 可选。指定匹配方式的字符串,其含义与 REGEXP_LIKE() 中描述的相同。 |
2250

2351
## 返回类型
2452

0 commit comments

Comments
 (0)