链接 正则表达式解释https://tool.oschina.net/uploads/apidocs/jquery/regexp.html
常用正则表达式:常用正则表达式
中文字符的正则表达式: [\u4e00-\u9fa5]
国内电话号码(0511-4405222、021-87888822): \d{3}-\d{8}|\d{4}-\d{7}
密码(以字母开头,长度在6~18之间,只能包括字母、数字跟下划线):^[a-zA-Z]\w{5,17}$
帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
日期格式:^\d{4}-\d{1,2}-\d{1,2}
一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$
一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
hive中正则函数的用法:
regexp_replace用法
- 截取字符串中的汉字部分:
举个栗子:select regexp_replace('七夕节comming!来啦','([^\\u4E00-\\u9FA5]+)','') from dual;
结果:七夕节来啦
2.截取字符串中的字母和数字部分:([^xyz]
不匹配这个集合中的任何一个字符)
举个栗子:select regexp_replace('wo爱你123CHINA中国!','([^a-zA-Z0-9]+)','') from dual
结果:wo123CHINA
3. 指明两项之间的一个选择。例子’([a-z]+|[0-9]+)$'
表示所有小写字母或数字组合成的字符串。
栗子:SELECT regexp_replace('七夕节Coming666!','([a-z]+|[A-Z]+|[0-9]+)','') from dual
结果:七夕节!
4. 匹配一个非字数字符(/D 等同于 [^0-9]
)
举个栗子1:select regexp_replace('我爱你123zhongguo666!','(\\D+)','') from dual
结果:123666
regexp_extract用法(参数3取决于参数2()的数量,从0开始)
5. 截取字符串中的数字部分([xyz] 匹配这个集合中的任何一个字符)(/d 匹配一个字数字符)
举个栗子:
select regexp_extract('七夕节coming666','([0-9]+)',1) from dual
or select regexp_extract('七夕节coming666','(\\d+)',1) from dual
结果:666
6.截取字符串中的字母部分
举个栗子:select regexp_extract('七夕节Coming666','([a-zA-Z]+)',1) from dual;
结果:Coming
另注意一种方法:(\W)匹配汉字 (\w) 表示匹配字母、下划线、数字
例如:select regexp_extract('产险一级机构02','(\\W*)(\\w*)',1) from dual
结果:产险一级机构
例如:select regexp_extract('产险一级机构02','(\\W*)(\\w*)',2) from dual
结果:02
7 {n} 精确匹配n次
举栗子1:select regexp_extract('我爱你123zhongguo666!','(你)(.*?)(6)',0) from dual
结果:你123zhongguo6
举栗子2:select regexp_extract('我爱你123zhongguo666!','(你)(.*?)(6)',1) from dual
结果:你
举栗子3:select regexp_extract('我爱你123zhongguo666!','(你)(.*?)(6)',2) from dual
结果:123zhongguo
举栗子4:select regexp_extract('我爱你123zhongguo666!','(你)(.*?)(6)',3) from dual
结果:6
举个栗子2:select regexp_extract('152天内有67天无通话记录','([0-9]+)([^0-9]+)([0-9]+)',0) from dual
结果:152天内有67
举个栗子3:select regexp_extract('152天内有67天无通话记录','([0-9]+)([^0-9]+)([0-9]+)',1) from dual
结果:152
举个栗子4:select regexp_extract('152天内有67天无通话记录','([0-9]+)([^0-9]+)([0-9]+)',2) from dual
结果:天内有
举个栗子5:select regexp_extract('152天内有67天无通话记录','([0-9]+)([^0-9]+)([0-9]+)',3) from dual
结果:67