扣子平台正则需精准适配其引擎:手机号用\b1[3-9]\d{9}\b或1[3-9]\d{1,2}[-\s]?\d{4}[-\s]?\d{4};邮箱校验必须^[\w.%+-]+@[\w.-]+.[a-za-z]{2,}$;敏感词替换用(微信|qq|电话)配***并忽略大小写;日期统一用(\d{4})[-/年](\d{1,2})[-/月](\d{1,2})[日]?→$1-$2-$3。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在扣子(Coze)平台的文本处理节点中,用正则表达式提取、清洗或替换用户输入中的关键信息,是构建高响应准确率 Bot 的核心操作。你不需要写完整代码,但必须精准写出能被扣子正则引擎识别并执行的 pattern,否则节点会跳过匹配或返回空结果。
提取手机号:从杂乱文本中捞出11位数字
方法一:基础宽松匹配(适用于纯中文/英文混排场景)
输入正则:\b1[3-9]\d{9}\b
这能匹配以1开头、第二位是3–9、共11位的连续数字,【\b是单词边界,防止匹配到113812345678中的“3812345678”】。
注意:不校验运营商号段,但兼容大多数真实输入。
方法二:严格格式+可选分隔符(适配带空格、短横线的用户输入)
输入正则:1[3-9]\d{1,2}[-\s]?\d{4}[-\s]?\d{4}
它允许中间出现一次空格或短横线,比如“138-1234-5678”或“138 1234 5678”。
这个写法比纯11位更鲁棒,但别忘了扣子节点默认不开启多行模式,所以不用加m标志。
验证邮箱格式是否合法
直接使用经过生产环境验证的精简版邮箱正则:^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
必须以^开头、$结尾,否则可能把“abc@def@g.com”这种错误格式也当作部分匹配成功。
扣子文本处理节点的“正则匹配”模式只认完整匹配,不支持部分提取后自动截断。
如果只想判断是否含邮箱(不要求整字段都是邮箱),去掉首尾锚点:[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
这一步容易漏掉+量词,导致只匹配单字符用户名,例如“a@b.c”能过,“admin@site.com”就失败。
批量替换敏感词为星号
第一步:准备待替换词表,如“微信”“QQ”“电话”
第二步:拼成正则分支表达式:(微信|QQ|电话)
第三步:在扣子节点“正则替换”字段填入该表达式,替换内容填***
第四步:勾选“忽略大小写”开关——否则“qq”“Qq”不会被替换。
注意:分支括号()不能省,否则|会被当作字面符号处理;【分支内不能有空格,写成(微信 | QQ)会导致匹配失败】。
提取日期并统一为 YYYY-MM-DD 格式
① 先匹配常见变体:\b\d{4}[-/年]\d{1,2}[-/月]\d{1,2}[日]?\b
它能捕获“2024-03-15”“2024/03/15”“2024年03月15日”三类。
② 在扣子“正则替换”中启用捕获组,把年月日分别圈出:(\d{4})[-/年](\d{1,2})[-/月](\d{1,2})[日]?
③ 替换为:$1-$2-$3
扣子使用标准 JavaScript 风格的反向引用语法,不是\1,务必用$1。
④ 若原始文本含“24-03-15”这类两位年份,此正则不匹配,需额外加一条规则处理。











