hive 正则表达式 匹配中文

例如:要取出收件人 *的

select regexp_extract(‘收件人为小明的15622150839‘,‘收件人为([\\u4E00-\\u9FFF]+)的‘,1 ) from tmp.t_gg  limit 1;
select regexp_extract(‘收件人为小明的15622150839‘,‘收件人为([啊-龥]+)的‘,0 ) from tmp.t_gg  limit 1;

select regexp_extract(‘收件人为小明的15622150839‘,‘收件人为([\\u4E00-\\u9FA5]+)的‘,1 ) from tmp.t_gg  limit 1;

如果要取出手机号码

select regexp_extract(‘你好,李先生你的电话是15622150839‘,‘电话是([0-9])+‘,0 ) from tmp.t_gg  limit 1;

regexp_extract函数

语法:    regexp_extract(string subject,  string pattern,  int index)

返回值: string

说明:  将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。

第一参数:   要处理的字段

第二参数:    需要匹配的正则表达式

第三个参数:

  • 0是显示与之匹配的整个字符串
  • 1 是显示第一个括号里面的
  • 2 是显示第二个括号里面的字段

原文地址:https://www.cnblogs.com/lqs-zsjky/p/9230971.html

时间: 2024-11-09 04:40:57

hive 正则表达式 匹配中文的相关文章

正则表达式匹配中文

/** * 正则表达式匹配中文 */ - (BOOL)isRegexMatching:(NSString *)str; { NSString *regex = @"^[\u4E00-\u9FFF]+$"; return [[NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex] evaluateWithObject:str]; }

java之endwith()方法以及正则表达式匹配中文

今天写程序的时候遇到判断需要使用多个if(){}else{}语句,观察了一下需要判断的条件,发现判断的条件可以变为对条件最后几个汉字的判断,就想用正则表达式来对汉字判断,写完后,想到可以用Java中String类的endwith()方法来对汉字实现匹配,例如 String str="世界你好我喜欢编程"; if(str.endwith("编程")){ dosomething(); }else{ dosomething(); } 以下是endwith()方法的源码:

【转】正则表达式 匹配中文,英文字母和数字及_的写法!同时控制长度

匹配中文:[\u4e00-\u9fa5] 英文字母:[a-zA-Z] 数字:[0-9] 匹配中文,英文字母和数字及_: ^[\u4e00-\u9fa5_a-zA-Z0-9]+$ 同时判断输入长度:[\u4e00-\u9fa5_a-zA-Z0-9_]{4,10} ^[\w\u4E00-\u9FA5\uF900-\uFA2D]*$ 1.一个正则表达式,只含有汉字.数字.字母.下划线不能以下划线开头和结尾:^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$  其中:^

PHP使用正则表达式匹配中文,有部分匹配不出来的解决办法

今天在开发的时候有个需要,就是匹配出一条计价公式里的材料文本,示例:[羊脂玉价格]*[羊脂玉重量]+[白金价格]*[白金重量]+[皓石价格]*[皓石重量]+[钻石价格]*1.5*[钻石重量]+[硬金价格]*1.67*[硬金重量],要匹配出[***_价格],就是中括号内,以_价格结尾的字符串(代表材料的名称),我用的语言是PHP,写了一条正则表达式出来,代码如下: $pattern = "/\\[([^_价格]+)_价格\\]/"; $res = preg_match_all($patt

sublimetext 使用正则表达式匹配中文

[\x{4e00}-\x{9fa5}] ============================================= 参考资料 1.在javascript下正确的\x4e00-\x9fa5并不完全适合php中文正则表达式:2.匹配中文全角字符的正则:   ^[\x80-\xff]*^/  :3.GB2312.汉字.字母.数字.下划线正则表达式:[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+:4.UTF-8汉字.字母.数

正则表达式 匹配中文,英文字母和数字及_的写法!同时控制长度

匹配中文:[\u4e00-\u9fa5] 英文字母:[a-zA-Z] 数字:[0-9] 匹配中文,英文字母和数字及_: ^[\u4e00-\u9fa5_a-zA-Z0-9]+$ 同时判断输入长度:[\u4e00-\u9fa5_a-zA-Z0-9_]{4,10} ^[\w\u4E00-\u9FA5\uF900-\uFA2D]*$ 1.一个正则表达式,只含有汉字.数字.字母.下划线不能以下划线开头和结尾:^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$  其中:^

正则表达式匹配中文字符及标点

可以写成这样 string strRegex = @"[\u4e00-\u9fa5]|[\(\)\<\>\--\:\,\.\"\"\<\>\!]"; 其中前半部分表示匹配中文字符,后半部分为需要匹配的标点符号. 另, 对于html源码的处理,建议使用HtmlAgilityPack,用下面的代码去掉其中的脚本.样式或者注释内容. public static HtmlDocument InitializeHtmlDoc(string htmlSt

关于Hive正则匹配中文字符串的问题

首先,中文字符集为 '^[\\4e00-\\u9fa5]$' 1.如果直接在Hive命令行中使用, 则直接使用 '^[\\u4e00-\\u9fa5]$' 进行匹配 2.如果在终端调用,则需叫上转义符,如 hive -e "select '中国' rlike '^[\\\u4e00-\\\u9fa5]$'" 3.在scala和java中使用 同1: val regex = new Regex("[\\u4e00-\\u9fa5]") val a = regex.fi

正则表达式 匹配中文

一: package cn.sunzn.demo; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Demo { public static void main(String[] args) { System.out.println(isContainChinese("中国China")); } public static boolean isContainChinese(Stri