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

Power Automate中如何提取URL至首个换行符前的内容?

Power Automate提取首个换行符前URL的解决办法

问题原因

你当前的表达式用'\\n'匹配换行符,但Power Automate中,HTML转文本后的换行符是ASCII控制字符(LF对应char(10),CRLF对应char(13)&char(10)),而非字符串形式的\n(反斜杠+n)。因此indexOf匹配不到目标,返回-1,slice就会截取整个输入内容。

可行解决方法

方法1:用split函数拆分取首个元素(推荐)

直接按实际换行符拆分文本,取第一个元素即可,无需计算索引:

{
   "type": "Compose",
   "inputs": "@split(body('Html_to_text_1'), char(10))[0]",               
   "runAfter": {                                                                                                                         
       "Html_to_text_1": [        
        "Succeeded"                                                                                                                                                                                       
     ]
  }              
}

如果邮件正文的换行是CRLF格式(Windows系统常见),替换分隔符为char(13)&char(10):

{
   "type": "Compose",
   "inputs": "@split(body('Html_to_text_1'), char(13)&char(10))[0]",               
   "runAfter": {                                                                                                                         
       "Html_to_text_1": [        
        "Succeeded"                                                                                                                                                                                       
     ]
  }              
}

方法2:修正indexOf的匹配目标

如果坚持用slice,把匹配的换行符换成实际的控制字符:

{
   "type": "Compose",
   "inputs": "@slice(body('Html_to_text_1'), 0, indexOf(body('Html_to_text_1'), char(10)))",               
   "runAfter": {                                                                                                                         
       "Html_to_text_1": [        
        "Succeeded"                                                                                                                                                                                       
     ]
  }              
}

额外优化:处理多余空格

如果URL前后有空格,可结合trim函数清理:

{
   "type": "Compose",
   "inputs": "@trim(split(body('Html_to_text_1'), char(10))[0])",               
   "runAfter": {                                                                                                                         
       "Html_to_text_1": [        
        "Succeeded"                                                                                                                                                                                       
     ]
  }              
}

验证换行符类型

不确定换行符是LF还是CRLF时,可添加一个Compose步骤验证:

{
   "type": "Compose",
   "inputs": "@contains(body('Html_to_text_1'), char(10))",               
   "runAfter": {                                                                                                                         
       "Html_to_text_1": [        
        "Succeeded"                                                                                                                                                                                       
     ]
  }              
}

返回true说明是LF;若返回false,再测试@contains(body('Html_to_text_1'), char(13)&char(10))。

内容的提问来源于stack exchange,提问作者Rodical

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 13:44:52