Hana正则表达式无法正常工作

时间:2019-08-14 09:40:26

标签: sql regex database hana

我们在哈纳(Hana)中使用LIKE_REGEXPR查找具有无效字符的记录。例如,我在Address2中的值是

 JALAN*# CHANGKAT

*不在我的允许列表上,因此我的查询应显示记录。但是它没有按预期工作。

代码:

select *
from contact PRD
WHERE adress = 'Home' AND
      (prd.Address2 is null or  
       PRD.Address2 LIKE_REGEXPR '[^[:alnum:][:space:]_#&-/.,():{}_\!;$'']');

但是它没有显示JALAN*# CHANGKAT。查询出了什么问题?

1 个答案:

答案 0 :(得分:1)

您已包含字符“。”。在您的RegEx中-通常会匹配任何字符。您应该在RegEx中转义任何“特殊”字符。

我建议您在RegEx测试器(在线上有很多可用的测试器)中测试正则表达式,以查看其是否满足您的要求。自己检查结果,但我希望您需要:

NOT LIKE_REGEXPR '^[a-zA-Z0-9\s\t_#&\-\/\.,\(\):\{\}_\\!;]+$'

这将查找与正则表达式不匹配的条目,该正则表达式将整个值(用^和$括起来)与列表中的一个或多个字符匹配。如果您有最小长度,也可以包含该长度,例如,可以使用至少8个字符:

NOT LIKE_REGEXPR '^[a-zA-Z0-9\s\t_#&\-\/\.,\(\):\{\}_\\!;]{8,}$'

Test your RegEx!!