如果字符串以 8 个字符开头并带有破折号“-”,则插入特定标签
If string starts with 8 characters with a dash "-" insert specific label
在 SQL 中(特别是在 Snowflake 中),我有一个如下所示的字符串:
Col_A
afdafe12-123-42141
jkk121jd-313-129en
dje-332-djak
如果模式以 8 个字符开头并带有“-”,我该如何制定规则,它被标记为“保留”?
我想做一个类似于下面的 case when 语句:
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
提示:Snowflake 还支持不区分大小写的 ilike
like
。合适的话可以换掉
在 SQL 中(特别是在 Snowflake 中),我有一个如下所示的字符串:
Col_A
afdafe12-123-42141
jkk121jd-313-129en
dje-332-djak
如果模式以 8 个字符开头并带有“-”,我该如何制定规则,它被标记为“保留”?
我想做一个类似于下面的 case when 语句:
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
提示:Snowflake 还支持不区分大小写的 ilike
like
。合适的话可以换掉