我想使用 Azure 数据工厂中的 if condition
事件检查文件名中是否包含日期模式 (dd-mmm-yyy
)。例如:我的文件名类似于 somestring_23-Apr-1984.csv,其中包含日期模式。
我使用获取元数据
事件获取文件名,并将其传递给if条件
事件,我想在其中检查文件名中是否包含日期模式,并且根据结果我想执行不同的任务。我知道执行此操作的唯一方法是使用正则表达式来检查该模式在文件名字符串中是否可用,但是,Azure 没有 documentation 中提到的正则表达式解决方案。 .
还有其他方法可以实现我在 ADF 中的要求吗?非常感谢您的帮助。
最佳答案
是的,表达式中没有正则表达式。还有另一种方法可以做到这一点,但它非常复杂。
首先,从获取元数据
的输出中获取日期字符串(23-Apr-1984)。
然后,分割日期字符串并确定每个部分是否匹配日期模式。
下面是我的测试管道:
第一个设置变量
:
name: fileName
value: @split(split(activity('MyGetMetadataActivity').output.itemName,'_')[1],'.csv')[0]
第二个设置变量
:
name: fileArray
value: @split(variables('fileName'),'-')
如果条件
:
Expression:@and(contains(variables('DateArray'),variables('fileArray')[0]),contains(variables('MonthArray'),variables('fileArray')[1]))
顺便说一句,我本来想将日期与0和30进行比较,但是greaterOrEquals()
不支持嵌套属性,所以我使用contains()
。
希望这可以帮助你。
关于azure - Azure 中带有 if 条件事件的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62525120/