在单个条件中组合两个或多个不同的正则表达式

时间:2017-05-09 07:10:05

标签: sql regex tableau

我需要在IF子句的单个THEN语句中执行以下两个表达式。

REGEXP_EXTRACT_NTH([Col_name],'.*>(.*)',1)

REGEXP_REPLACE([Col_name],'(".*")\s',"")

应使用OR操作检查两个操作。

样品:

<E05739> A service with name "1,178,302,180" is already active between Fri Apr 21 00:00:00 2017 and Thu Dec 30 00:00:00 9999.

预期产出:

A service with name  is already active between Fri Apr 21 00:00:00 2017 and Thu Dec 30 00:00:00 9999.

1 个答案:

答案 0 :(得分:0)

您可以使用以下正则表达式替换操作:

^<[^>]*>\s*(.*?)"[0-9,]+"(.*)

替换为$1$2

请参阅regex demo

<强>详情:

  • ^ - 字符串开头
  • <[^>]*> - 一个<...>子字符串(< + 0个或更多字符,而非>,然后>
  • \s* - 0+ whitespaces
  • (.*?) - 捕获组#1(从替换模式引用$1)尽可能少地捕获除换行符之外的任何0+字符
  • " - 双引号
  • [0-9,]+ - 一位或多位数或,
  • " - "
  • (.*) - 捕获组#2(从替换模式引用$2)尽可能多地捕获除换行符之外的任何0+字符(贪心量词*是在这里使用)。