如何在ADF中替换特殊字符后将错误信息传递至Azure Functions
ADF特殊字符替换(单引号/双引号/换行符)解决方案
原表达式失效原因
你之前的替换单引号的表达式未正确转义字面量单引号:ADF表达式语法规定,要表示作为匹配值的单引号,需要用两个连续的单引号做转义处理,所以原写法@replace(activity('CPY_ACTIVITY').output.errors[0].Message,''','')会被识别为语法错误,无法生效。
正确替换表达式
需要使用三层嵌套的replace函数,依次替换单引号、双引号、换行符,表达式如下:
@replace(replace(replace(activity('CPY_ACTIVITY').output.errors[0].Message, '''', ''), '"', ''), '\n', '')
各层替换逻辑:
- 第一层(最内层):匹配所有单引号并替换为空,其中
''''是转义后的单引号字面量 - 第二层:匹配所有双引号并替换为空
- 第三层(最外层):匹配所有换行符
\n并替换为空
如果还需要清除回车符\r等其他控制字符,可以继续嵌套replace函数,例如:
@replace(replace(replace(replace(activity('CPY_ACTIVITY').output.errors[0].Message, '''', ''), '"', ''), '\n', ''), '\r', '')
使用说明
你可以先将替换后的结果赋值给ADF的字符串类型变量做验证,确认特殊字符全部清除后,再将变量值传递给Azure Functions即可。
内容的提问来源于stack exchange,提问作者Manasa Murugan
相关产品推荐
相关产品推荐

