【问题标题】:Regular expression with if condition activity in AzureAzure 中带有 if 条件活动的正则表达式
【发布时间】:2020-06-23 15:13:22
【问题描述】:

我想使用 Azure 数据工厂中的 if condition 活动检查文件名中是否包含日期模式 (dd-mmm-yyy)。例如:我的文件名类似于 somestring_23-Apr-1984.csv,其中包含日期模式。

我使用Get Metadata 活动获取文件名并将其传递给if condition 活动,我想检查文件名中是否包含日期模式,并根据结果我想执行不同的任务。我知道做到这一点的唯一方法是使用正则表达式检查文件名字符串中的模式是否可用,但是,Azure 没有documentation 中提到的正则表达式解决方案。

还有其他方法可以满足我在 ADF 中的要求吗?非常感谢您的帮助。

【问题讨论】:

  • 如果您认为我的回答对您有帮助,您可以将其标记为已回答。非常感谢。

标签: azure azure-data-factory azure-data-factory-2


【解决方案1】:

是的,表达式中没有正则表达式。还有另一种方法可以做到这一点,但它非常复杂。

首先,从Get Metadata 的输出中获取日期字符串(23-Apr-1984)。

然后,拆分日期字符串,并确定每个部分是否匹配日期模式。

下面是我的测试管道:

第一Set variable

name: fileName
value: @split(split(activity('MyGetMetadataActivity').output.itemName,'_')[1],'.csv')[0]

第二个Set variable

name: fileArray
value: @split(variables('fileName'),'-')

If Condition:

Expression:@and(contains(variables('DateArray'),variables('fileArray')[0]),contains(variables('MonthArray'),variables('fileArray')[1]))

顺便说一句,我本来想用0和30比较日期,但是greaterOrEquals()不支持嵌套属性,所以我用contains()

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 2021-09-02
    • 1970-01-01
    相关资源
    最近更新 更多