【问题标题】:To combine two or more different regex expressions in a single condition在一个条件中组合两个或多个不同的正则表达式
【发布时间】:2017-10-07 09:12:34
【问题描述】:

我需要在 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.

【问题讨论】:

  • 请在下面的答案中检查我的方法,REGEXP_REPLACE([Col_name],'pattern','$1$2') 应该可以工作(或者,如果'$1$2' 不起作用,请尝试 POSIX/Python 样式,'\1\2'
  • 我的回答对你有用吗?

标签: sql regex tableau-api


【解决方案1】:

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

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

替换为$1$2

请参阅regex demo

详情

  • ^ - 字符串开头
  • &lt;[^&gt;]*&gt; - 一个 &lt;...&gt; 子字符串(&lt; + 0 个或多个字符,而不是 &gt; 然后是 &gt;
  • \s* - 0+ 个空格
  • (.*?) - 捕获组 #1(引用替换模式中的 $1)尽可能少地捕获除换行符之外的任何 0+ 字符
  • " - 双引号
  • [0-9,]+ - 1 个或多个数字或 ,
  • " - 一个"
  • (.*) - 捕获组 #2(引用替换模式中的 $2)尽可能多地捕获除换行符之外的任何 0+ 字符(此处使用贪婪量词 *)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-23
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-23
    • 1970-01-01
    • 2020-01-29
    相关资源
    最近更新 更多