如果字符串以8个字符开头且带有破折号“-”,则插入特定标签

问题描述

sql中(特别是在SNowflake中),我有一个看起来像这样的字符串:

Col_A
afdafe12-123-42141
jkk121jd-313-129en
dje-332-djak

如何制定规则,如果模式以8个字符开头并带有“-”,则标记为“保持”?

我想做一个如下情况的情况:

case when Col_A "regex rule" then 'keep' 
when Col_A like 'dje%' then 'remove' else 'disregard' end new_col
from dataframe

解决方法

那将是:

col_a rlike '^.{8}-'

故障:

^      beginning of the string
.{8}   any 8 characters
-      a dash

或者如果您希望第一个破折号位于字符串的第9位:

col_a rlike '^[^-]{8}-'

...,其中'[^-]'表示:'-'以外的任何字符。

,

您可以使用8个下划线。下划线匹配单个字符

case when Col_A like '________-%' then 'keep' 
     when Col_A like 'dje%' then 'remove' 
     else 'disregard' end as new_col

提示:雪花也支持ilike,这是不区分大小写的like。您可以根据需要将其交换出去