首页 > 解决方案 > 如何从 azure 数据流中的字符串列中提取 dd-mm-yyyy 格式的数据?

问题描述

我有一个包含日期和字符串的数据集。我想提取日期,然后将其保存在date列中并在列中保存字符串task。我正在使用 azure 数据流来实现这种数据转换。

regexExtract({Finish Date Activity}, '^([0-2][0-9]|(3)[0-1])(\-)(((0)[0-9])|((1)[0-2]))(\-)\d{4}$', 1)

在此处输入图像描述

但这似乎对我不起作用并且Unable to parse the expression. Please make sure it is valid.出现错误。谁能帮我解决这个问题,好吗?

标签: regexazureazure-data-factoryregex-groupazure-data-flow

解决方案


您可以使用

((?:0?[1-9]|[12][0-9]|3[01])-(?:0?[1-9]|1[0-2])-\d{2}(?:\d{2})?)

或者,如果您的日期总是在文本的开头:

^((?:0?[1-9]|[12][0-9]|3[01])-(?:0?[1-9]|1[0-2])-\d{2}(?:\d{2})?)

查看正则表达式演示

细节

  • ^- 字符串的开始
  • (- 捕获组 #1 的开始(您使用1参数提取此组值)
  • (?:0?[1-9]|[12][0-9]|3[01])- 非捕获组:日值
  • -- 一个连字符
  • (?:0?[1-9]|1[0-2])- 月部分
  • -- 一个连字符
  • \d{2}(?:\d{2})?- 两位数或四位数的年份。

推荐阅读