Hive正则表达式
正则表达式基本语法
用圆括号将所有选择项括起来,相邻的选择项之间用|分隔。但用圆括号会有一个副作用,使相关的匹配会被缓存,此时可用?:放在第一个选项前来消除这种副作用。
其中 ?: 是非捕获元之一,还有两个非捕获元是 ?= 和 ?!,这两个还有更多的含义,前者为正向预查,在任何开始匹配圆括号内的正则表达式模式的位置来匹配搜索字符串,后者为负向预查,在任何开始不匹配该正则表达式模式的位置来匹配搜索字符串。
其中 ?: 是非捕获元之一,还有两个非捕获元是 ?= 和 ?!,这两个还有更多的含义,前者为正向预查,在任何开始匹配圆括号内的正则表达式模式的位置来匹配搜索字符串,后者为负向预查,在任何开始不匹配该正则表达式模式的位置来匹配搜索字符串。
非打印字符
非打印字符也可以是正则表达式的组成部分。下面列出表示非打印字符的转义序列:
特殊字符
所谓特殊字符,就是有一些特殊含义的字符,需要在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符“转义”。
限定符
限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。正则表达式的限定符有:
*,+限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。
定位符
定位符能够将正则表达式固定到行首或者行尾,还能定位在一个单词内部或者开头或者结尾。正则表达式的定位符有: