sql - 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
。查询有什么问题?
解决方案
您已包含字符“。” 在您的正则表达式中 - 这通常会匹配任何字符。您应该转义 RegEx 中的任何“特殊”字符。
我建议您在 RegEx 测试器中测试您的正则表达式(网上有很多可用的),看看它是否能满足您的需求。自己检查结果,但我希望您需要:
NOT LIKE_REGEXPR '^[a-zA-Z0-9\s\t_#&\-\/\.,\(\):\{\}_\\!;]+$'
这将查找与正则表达式不匹配的条目,该正则表达式将整个值(由 ^ 和 $ 括起来)与列表中的一个或多个字符匹配。如果您有最小长度,您也可以包含它,例如,您可以使用至少 8 个字符:
NOT LIKE_REGEXPR '^[a-zA-Z0-9\s\t_#&\-\/\.,\(\):\{\}_\\!;]{8,}$'
推荐阅读
- python - pandas 中的条件成对计算
- c - 在c中取消引用指针时遇到问题
- javascript - Utilities.formatDate 使用 Array.map 返回错误的日期
- php - Laravel 与模块共享会话相同的域
- css - 想知道如何通过 tabview 样式属性更改标题?
- c++ - 使用 std::filesystem 替换文件
- apache-spark - AnalysisException: Table or view not found --- 即使我使用“createGlobalTempView”创建了一个视图,如何修复?
- eigen - Eigen 的 LeastSquaresConjugateGradient 求解器:使用不完全 Cholesky 预处理器并指定系数起始值
- c++ - VideoCapture 不会打开视频
- react-native - 如何更改 createBottomTabNavigator 的高度和位置