Power Automate自动提取邮件动态域名/IP并同步至SharePoint列表
核心思路
通过正则表达式匹配邮件正文中所有符合格式的域名或IP地址,自动生成结果数组后批量写入SharePoint列表,无需手动指定提取数量。
具体步骤
1. 预处理邮件正文
在Flow中添加「获取邮件(V3)」或对应触发动作获取目标邮件,再用「HTML到文本」动作将邮件的HTML正文转换为纯文本,避免标签干扰后续匹配。
2. 正则匹配所有目标项
添加「撰写」动作,使用Power Automate内置的matches()函数提取所有匹配内容:
matches(outputs('HTML到文本')?['body'], '((?:\d{1,3}\.){3}\d{1,3})|((?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,})', 'gi')
- 正则规则说明:
(?:\d{1,3}\.){3}\d{1,3}:匹配标准IPv4地址(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}:匹配多级域名(支持包含连字符的域名)gi:开启全局匹配+忽略大小写模式
3. 处理匹配结果
添加「条件」动作判断结果数组是否非空,判断公式:
length(outputs('撰写')?['body']) > 0
4. 批量写入SharePoint
在条件的「是」分支中,添加「应用到每一个」动作,选择上述匹配结果数组作为循环对象。循环内添加「创建项」动作,将当前循环项(items('应用到每一个'))写入SharePoint列表的对应字段。
可选优化
- 去重处理:若需剔除重复的域名/IP,可使用
union()函数对结果数组去重,公式:union(outputs('撰写')?['body'], outputs('撰写')?['body']) - 扩展匹配规则:如果需要支持IPv6、带端口的地址,可调整正则表达式适配对应格式。
内容的提问来源于stack exchange,提问作者Beau Van Der Meer
相关产品推荐
相关产品推荐

