编写DataFlow表达式:按句号拆分字符串但忽略邮箱地址
DataFlow 表达式实现按句号拆分(排除邮箱地址)
核心表达式
使用条件判断结合正则匹配与字符串替换,实现需求:
iif(matches(your_column_name, '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'), your_column_name, replace(your_column_name, '\.', ' '))
表达式说明
- 正则匹配邮箱:
matches(your_column_name, '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$')用于判断当前字符串是否为有效邮箱地址,覆盖包含多级域名(如.com.uk)的常见场景。 - 条件分支:
- 如果是邮箱地址,直接返回原字符串。
- 如果不是邮箱地址,用
replace(your_column_name, '\.', ' ')将所有英文句号替换为空格,实现拆分效果。
示例验证
- 输入
T.K Mike→ 输出T K Mike - 输入
T.K. Mike→ 输出T K Mike - 输入
Tkmike@abc.com.uk→ 输出Tkmike@abc.com.uk
注意事项
若需支持更复杂的邮箱格式(如带特殊字符的邮箱),可调整正则表达式的匹配规则,确保符合业务场景下的邮箱定义。
内容的提问来源于stack exchange,提问作者Jen
相关产品推荐
相关产品推荐

