客户管理系统开发定制Hive正则表达式

前段时间,客户管理系统开发定制在我们的过程中,客户管理系统开发定制因为没有现成的数据表,客户管理系统开发定制导致数据没有办法直接取,需要解析日志的内容,从日志里面拿到我们想要的数据,但是日志的内容并没有那么的规则,这个时候,正则表达式就展现出很大的优势,正好我也把正则表达式温习实践了一遍,正好整理下来。

支持的正则表达式有三种,分别是regexp、regexp_replace、regexp_extract

一、regexp

1,语法格式: A REGEXP B
释义:A是需要匹配的字符串,B是正则表达式字符串
返回结果:boolean或null
示例SQL:

 select '四川办' regexp '川办'; select '四川办' regexp '湖南';
  • 1
  • 2

返回结果:

truefalse
  • 1
  • 2

二、

1,语法格式: regexp_replace(string A, string B, string C)
2,释义:将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符,类似oracle中的regexp_replace函数。
示例SQL:

select regexp_replace('四川办第1名', '\\d+', '一');
  • 1

返回结果:

四川办第一名
  • 1

三、regexp_extract

1,语法格式:regexp_extract(string subject, string pattern, int index)
2,释义:将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符,index从1开始计。
示例SQL:

select regexp_extract('四川办:第1名', '([0-9]+)', 1);
  • 1

返回结果:

1
  • 1

四、常用的正则表达式规则:

1,元字符匹配

(.)   表示匹配除换行符以外的任意字符。(\w) 表示匹配字母、下划线、数字 (\W匹配汉字)(\d) 表示匹配数字(\s) 表示匹配任意的空白符(tab 换行 空格)([ ])  表示匹配方括号中任一字符([^匹配内容]) 表示不匹配方括号中任一字符
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2,位置匹配

(^) 表示匹配字符串的开始,空值:^$($) 表示匹配字符串的结束(\b) 表示匹配单词的开始或结束。(\B) 表示匹配非单词的开始或结束
  • 1
  • 2
  • 3
  • 4

3,频率匹配

(*) 表示匹配重复0次或多次(+) 表示匹配重复一次或更多次(?) 表示匹配重复0次或1({n}) 表示匹配重复n次({n,}) 表示重复n次或更多次({n,m}) 表示重复n到m次
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

正则表达式可以根据不同的需求,找到适合自己的函数,以及规则一起搭配使用。
正则表达式的使用就分享到这里了,我是喵~~,一起交流学习哇!

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发