我需要在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.
答案 0 :(得分:0)
您可以使用以下正则表达式替换操作:
^<[^>]*>\s*(.*?)"[0-9,]+"(.*)
替换为$1$2
。
请参阅regex demo。
<强>详情:
^
- 字符串开头<[^>]*>
- 一个<...>
子字符串(<
+ 0个或更多字符,而非>
,然后>
)\s*
- 0+ whitespaces (.*?)
- 捕获组#1(从替换模式引用$1
)尽可能少地捕获除换行符之外的任何0+字符"
- 双引号[0-9,]+
- 一位或多位数或,
"
- "
(.*)
- 捕获组#2(从替换模式引用$2
)尽可能多地捕获除换行符之外的任何0+字符(贪心量词*
是在这里使用)。