`
superlxw1234
  • 浏览: 551503 次
  • 性别: Icon_minigender_1
  • 来自: 西安
博客专栏
Bd1c0a0c-379a-31a8-a3b1-e6401e2f1523
Hive入门
浏览量:44455
社区版块
存档分类
最新评论

hive中巧用正则表达式的贪婪匹配

    博客分类:
  • hive
阅读更多

需求:

从字符串"979|7.10.80|8684"中提取最后一个竖线|后面的内容,
但是在这个字符串中,竖线的个数不是固定的

 

使用hive中的regexp_extract函数实现如下:

select regexp_extract('979|7.10.80|8684','.*\\|(.*)',1) from t1 limit 1;  
OK  
8864
 

由于正则表达式的贪婪匹配,一直会匹配到最后一个竖线。

如果要取第一个竖线前面的内容,实现如下:

select regexp_extract('979|7.10.80|8684','(.*?)\\|.*',1) from t1 limit 1;  
OK  
979 

 

 

贪婪匹配和非贪婪匹配的区别 .* .*?

 

 

如果可以确定取以竖线分割的第N字段,用split即可,比如,取第二个字段7.10.80:

 

select split('979|7.10.80|8684','\\|')[1] from t1 limit 1;  
OK  
7.10.80 
 
分享到:
评论

相关推荐

    电话号码及日期时间提取(正则表达式 C)

    在本项目中,“电话号码及日期时间提取(正则表达式 C)”是一个使用C语言编写的程序,它能够从文本中有效地识别和提取中国大陆的手机号码和固定电话号码,以及简体中文网页中的日期和时间信息。 首先,我们要理解...

    正则表达式实现匹配连续数字的方法

    我这两天刚刚学正则表达式。我觉的正则对连续的字符匹配很简单,但是对连续的一段数字匹配就不是很好。正好最近有朋友问了匹配连续数字的正则,就帮忙写...下面这篇文章就主要介绍了正则表达式实现匹配连续数字的方法。

    hivezzy:添加partition支持正则表达式

    正则表达式在数据处理中非常强大,它允许我们使用模式匹配来搜索、替换或提取数据。在`hivezzy`中,通过集成正则表达式,用户现在可以更灵活地查询Partition,比如一次性获取所有符合特定规则的分区数据,这对于分析...

    正则表达式大全

    正则表达式是一种强有力的工具,用于处理文本中的模式匹配与替换任务。它能够帮助开发者在文本数据中执行搜索、替换以及提取等操作。尽管初学时可能会觉得有些复杂,但一旦掌握了其规则,就能大大提高开发效率。 ##...

    各种情况手机号清洗udf函数(hive impala)

    我们将涵盖正则表达式在手机号码清洗中的应用,以及如何编写和使用Java UDF在Hive和Impala中实现这个过程。 1. **手机号码格式问题**:手机号码可能因历史记录、输入错误或不同的国家/地区标准而呈现多种格式。例如...

    过滤特殊字符及表情符

    - **正则表达式**:使用正则表达式可以高效地匹配并移除或替换特殊字符和表情符号。例如,`[^\w\s]` 可以匹配非字母数字和空格的字符。 - **字符串函数**:Java中的`String.replaceAll()`方法,可以结合正则表达式...

    HIVE函数详解大全

    10. JAVA 的 LIKE 操作:`RLIKE` - 类似于LIKE,但使用正则表达式进行匹配。 11. REGEXP 操作:`REGEXP` - 使用正则表达式进行精确匹配。 二、数学运算 数学运算符用于对数值进行基本的算术操作: 1. 加法操作:`...

    C# 去掉特定字符(使用ASC码)

    如果你需要处理包含Unicode字符的字符串,可能需要使用其他方法,例如使用正则表达式或者`string.Replace()`函数。 总结来说,C#中通过ASCII码去除特定字符的方法是一种直观且实用的技巧,尤其适用于处理仅包含...

    Hive内置函数速查表.pdf

    Hive内置函数还包括了正则表达式函数,如REGEXP和RLIKE,它们用于在字符串中搜索与正则表达式匹配的子串。这个功能在文本数据处理中非常实用。 总而言之,Hive内置函数速查表是Hive开发人员的实用工具,它能够快速...

    hive函数大全.doc

    RLIKE 操作符用于检查一个字符串是否匹配一个 Java 正则表达式。如果字符串匹配正则表达式,返回 TRUE,否则返回 FALSE。 示例:`SELECT * FROM table_name WHERE column_name RLIKE 'pattern';` 11. REGEXP 操作...

    Hive函数大全.pdf

    在大数据处理领域,Hive作为一个基于Hadoop的数据仓库工具,为...在实际使用中,结合HQL(Hive Query Language)的其他特性,可以实现复杂的数据处理任务。记住,合理运用这些函数可以提高数据处理效率和查询的准确性。

    Hive多字节分隔符解决方案.docx

    使用RegexSerDe,可以在加载数据时,使用正则表达式来识别多字节分隔符,并正确加载对应的数据。 ### 解决方案三:自定义InputFormat 自定义InputFormat是Hive提供的一种机制,允许用户自定义数据加载的方式。使用...

    hive-udf(两地址间距离计算+省市区位置解析(Java代码))

    这可能包括使用正则表达式匹配特定模式,或者创建一个包含中国所有省市区信息的查找表,通过查找匹配的地址段来确定地理位置。 在Hive中,我们可以将这些Java UDF打包成JAR文件,然后在Hive查询语句中使用`ADD JAR`...

    替换php字符串中的单引号为双引号的方法

    在这个例子中,应该是单引号,即使用正则表达式 '/\''/'。 2. `preg_replace` 函数的使用应该保证正则表达式准确,防止出现转义错误或者错误的字符匹配。 3. 理解原始字符串中的数据格式,避免在替换过程中破坏原有...

    利用Hive进行复杂用户行为大数据分析及优化案例

    利用Hive进行复杂用户行为大数据分析及优化案例(全套视频+课件+代码+讲义+工具软件),具体内容包括: 01_自动批量加载数据到hive ...16_Hive中使用正则加载数据 17_Hive中使用Python脚本进行预处理

    hive常用运算和函数1

    9. **JAVA 的 LIKE 操作: RLIKE**: 使用 `RLIKE` 运算符进行Java风格的正则表达式匹配。例如:`hive> select 1 from dual where 'footbar' rlike '^f.*r$';` 10. **REGEXP 操作**: 使用 `REGEXP` 运算符也进行正则...

    Hive函数大全1.0

    * JAVA 的 LIKE 操作(RLIKE):使用 JAVA 的正则表达式进行模式匹配 * REGEXP 操作(REGEXP):使用正则表达式进行模式匹配 数学运算函数: * 加法操作(+) * 减法操作(-) * 乘法操作(*) * 除法操作(/) * 取余操作(%) ...

    hive sql 拆解字段.docx

    如果要使用正则表达式替换字符串中的匹配项,可以使用 REGEXP_REPLACE 函数;如果要将一个数组列拆解成多行,可以使用 LATERAL VIEW explode 函数。 此外,还有其他一些函数可以用于更复杂的场景,如 `regexp_...

    hive函数大全

    - “REGEXP”用于执行正则表达式匹配。 二、数学运算 数学运算是Hive中进行数值计算的基础,包括加法、减法、乘法、除法、取余等。 - 加法运算使用“+”,减法运算使用“-”。 - 乘法运算使用“*”,除法运算使用...

Global site tag (gtag.js) - Google Analytics