如何使用REGEXP_CONTAINS匹配首词相似的数据?
问题分析与修正方案
你的正则语句失效主要有两个原因:
- 第二个正则缺少开头的
/,而目标数据均以/search开头,导致无法匹配到/search?和/search?ast这类数据 - 正则中的
?是特殊元字符(表示前一个字符可出现0或1次),需要用\转义才能匹配字面意义的问号
修正后的语句片段如下:
WHEN REGEXP_CONTAINS(entrance_page_name, '^/search\\?q=') THEN 'search?q=' WHEN REGEXP_CONTAINS(entrance_page_name, '^/search\\?') THEN 'search?'
注:部分SQL环境(如BigQuery)中单个
\即可完成转义,可根据实际环境调整为^/search\?q=和^/search\?
内容的提问来源于stack exchange,提问作者rien312
相关产品推荐
相关产品推荐

