You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Automate Desktop中基于Demand反向匹配指定千位分隔数字的正则表达式求助

Power Automate Desktop中基于Demand反向匹配指定千位分隔数字的正则表达式求助

嗨,我完全懂你的困扰——那些动态变化的字段长度和内容确实会让正向匹配的正则直接失效,从Demand行反向定位目标数字绝对是个精准的思路!

先再明确下你的输入文本场景:

Days of
Service
Electric 0156887974 02/24/23 60,170 01/24/23 58,149 1 2,021 31
Demand 0156887974 02/24/23 9.62 01/24/23 10.39 1 9.62 31
MESSAGE from KUA

你要找的是Demand行的上一行中,倒数第二个符合x,xxx格式的数字(这里是2,021),而且不管前面的动态内容怎么变,只要这个数字后面跟着一个数字+换行+Demand开头的行,就能匹配到。

给你这个针对性的正则表达式:

(\d{1},\d{3})\b(?=\s+\d+\s*\r?\nDemand\b)

正则逻辑拆解:

  • (\d{1},\d{3}):核心捕获组,专门匹配1位数字+逗号+3位数字的目标格式(完全符合你说的4位字符带逗号的要求)
  • \b:单词边界,确保我们匹配的是完整的数字词,不会和前后的字符粘连
  • (?=\s+\d+\s*\r?\nDemand\b):正向预查(关键的反向定位逻辑),确保当前匹配的数字后面满足:
    • \s+:至少一个空格
    • \d+:该行最后一个数字(比如示例里的31)
    • \s*:兼容换行前可能存在的多余空白
    • \r?\n:适配Windows和其他系统的换行符格式
    • Demand\b:精准锁定下一行以Demand开头的单词,确保匹配的是目标行

在Power Automate Desktop里的使用步骤:

  1. 添加Extract text with regex动作
  2. 把你的输入文本填入Input text字段
  3. 将上面的正则粘贴到Regular expression框中
  4. 如果你只需要这一个匹配结果,不用勾选Extract all matches
  5. 运行后,捕获组的结果(也就是目标数字)会被存储到指定变量里,直接调用即可

这个正则完全不受前面动态内容的影响,只要Demand行和目标数字的位置关系不变,就能稳定匹配到你要的值~

备注:内容来源于stack exchange,提问作者Shaikh Mohammad Zulqarnain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 09:39:40