sql - 正则表达式类似于 Hive 上的电话号码,没有前缀 (+01)

标签 sql regex hive numbers rlike

我们在 hive 上遇到正则表达式问题。 我们需要排除记录开头带有 +370037 的数字(这可能是正则表达式上的错误结果),并且不包含字母或空格。

我们正在尝试这个: regexp_like(tel_number,'^\+37|^0037+[a-zA-ZÀÈÌÒÙ]') 但它不起作用。

编辑:我们希望它从选择中显示为 true(正确的数字)或 false。

最佳答案

要排除以 +01 0r +001 或 +0001 开头且仅包含数字且不含空格或字母的数字:

... WHERE tel_number NOT rlike '^\\+0{1,3}1\\d+$'

Hive 中的特殊字符(例如 +)和字符类(例如 \d)应使用双斜杠进行转义:\\+\\d.

关于sql - 正则表达式类似于 Hive 上的电话号码,没有前缀 (+01),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68405737/

相关文章:

mysql - SQL 更新值是一系列产品的总和

hadoop - 哈希如何在 hive 的存储中工作?

hadoop - Hive Split 函数选择最后一组

sql - 如何从分组中计算总和值

MySql 在 SELECT 语句中使用 CASE 时的多个输出

asp.net - IIS Url Rewrite RegEx 与 .NET RegEx 的差异

javascript - 如何使用 ruby​​ 中的 scan 或 match 函数提取 JS 变量?

hadoop - 在Apache Hive中,具有大量外部表的DB花费太长时间来进行DROP CASCADE

python,将 pandas 数据帧转储到 SQL 数据库中

如果包含换行符,则 RegEx 匹配,但不应匹配