df-drills pandas · Polars · DuckDB SQL · DuckDB Relational 题目列表 登录

有效邮箱

中等 07-string 字符串 stringregexvalidationlength

从 raw_customers 里挑出邮箱有效的客户,并给出清洗后邮箱的长度。

先清洗:去掉 email 的首尾空白,再整体转成小写。清洗后的邮箱完整地符合下面的简化规则才算有效:

^[a-z0-9._]+@[a-z0-9-]+(\.[a-z0-9-]+)+$

也就是:@ 前是一个或多个小写字母、数字、.、_;只有一个 @;@ 后是若干段由小写字母、数字、- 组成的非空片段,用 . 连接,至少两段。

  • email 为 null 或无效的行不输出。
  • email_len 是清洗后邮箱的字符数。

输入

  • raw_customers(id, full_name, email, phone, birthday, signup, vip, spend),所有列都是字符串。

输出

列为 id, email, email_len,email 为清洗后的邮箱。id 可能重复,有效的重复行照常输出。行顺序不限。

输入表 (case base,共 2 个 case:base、edge)

raw_customers messy/raw_customers
#idstringfull_namestringemailstringphonestringbirthdaystringsignupstringvipstringspendstring
1 1 xu ming xu.ming60@mail.cn +86 189 3287 9217 - 2025-02-12 YES 3428
2 2 yang guo yang.guo68@example.com 10033907579 2003-04-21 05/01/2025 n 2,132.69
3 3 guo jing guo.jing91@mail.cn 15384019161 01/02/1994 2025-01-01 Y 3716.67
4 4 zhou jie zhou.jie26@qq.com 14514506123 29/02/2000 01/07/2025 no 999.73
5 5 liu yang liu.yang51@mail.cn 13049403 31/04/1999 2025-09-22 0 2024
6 6 zhang san ZHANG.SAN@Example.COM 13095597297 06/07/1978 15/11/2025 no $1,200.50
7 7 null zhou.jie54@example.com (111) 08436469 2003.3.24 2025-08-22 N $4,809.60
8 8 BOB smith N/A 173-0024-5892 11/08/1978 2026-06-19 yes 4842.25
9 9 LI WEI li.wei40@example.com (109) 17145211 - 13/05/2025 0 3592.13
10 10 he ping he.ping54@example.com 179-0966-9091 14/05/1977 02/02/2026 n 4395.47
11 11 guo jing guo.jing4@mail.cn 19170317974 05/05/1993 2025-07-27 0 2,316.99
12 12 he ping he.ping86@mail.cn 136-3363-9532 1992-01-23 11/10/2025 N 1442.64
13 13 BOB smith bob.smith67@mail.cn 1971-11-05 2025-07-14 1 $738.58
14 14 WANG FANG wang.fang@@mail.com N/A 09/04/1981 07/07/2026 yes 4152.00
15 15 grace HOPPER grace.hopper93@mail.cn (127) 73068985 - 2025-05-07 YES 1624
16 16 guo jing guo.jing34@qq.com (105) 81075864 2025-02-05 0 4,802.51
17 17 LIU YANG liu.yang93@qq.com 17791378 16/11/2025 no 740.03
18 18 GUO JING guo.jing26@mail.cn 18180960808 04/10/2004 2025-06-20 n 4196.37
19 19 zhou jie zhou.jie17@mail.cn 167-8513-6904 1971-01-07 13/01/2025 0 free
20 20 CHEN JING chen.jing66@qq.com - 28/04/2003 2025-05-20 0 1656
显示前 20 行,共 80 行

期望输出 (case base,行顺序不限)

#idStringemailStringemail_lenInt64
1 1 xu.ming60@mail.cn 17
2 2 yang.guo68@example.com 22
3 3 guo.jing91@mail.cn 18
4 4 zhou.jie26@qq.com 17
5 5 liu.yang51@mail.cn 18
6 6 zhang.san@example.com 21
7 7 zhou.jie54@example.com 22
8 9 li.wei40@example.com 20
9 10 he.ping54@example.com 21
10 11 guo.jing4@mail.cn 17
11 12 he.ping86@mail.cn 17
12 13 bob.smith67@mail.cn 19
13 15 grace.hopper93@mail.cn 22
14 16 guo.jing34@qq.com 17
15 17 liu.yang93@qq.com 17
16 18 guo.jing26@mail.cn 18
17 19 zhou.jie17@mail.cn 18
18 20 chen.jing66@qq.com 18
19 21 yang.guo28@example.com 22
20 22 chen.jing44@qq.com 18
21 24 zhao.lei91@qq.com 17
22 25 amy.chen61@example.com 22
23 26 grace.hopper7@example.com 25
24 27 wang.fang50@mail.cn 19
25 28 ada.lovelace75@example.com 26
26 29 xu.ming32@qq.com 16
27 31 wang.fang4@qq.com 17
28 32 chen.jing28@mail.cn 19
29 33 wu.han88@mail.cn 16
30 34 huang.rong88@mail.cn 20
31 35 guo.jing23@example.com 22
32 37 wu.han45@example.com 20
33 38 ma.yun8@mail.cn 15
34 39 yang.guo36@mail.cn 18
35 40 ma.yun8@qq.com 14
36 41 liu.yang@example.com 20
37 42 zhang.san5@qq.com 17
38 43 xu.ming16@qq.com 16
39 46 grace.hopper3@mail.cn 21
40 48 liu.yang70@qq.com 17
41 49 amy.chen85@example.com 22
42 50 zhao.lei93@qq.com 17
43 51 ma.yun54@example.com 20
44 52 ma.yun85@mail.cn 16
45 53 ada.lovelace@example.com 24
46 54 wang.fang46@mail.cn 19
47 58 linus.torvalds@example.com 26
48 59 zhang.san@example.com 21
49 60 amy.chen77@mail.cn 18
50 61 zhang.san55@example.com 23
显示前 50 行,共 69 行