工作以来一直都在断断续续使用正则表达式。可惜每次用时都百度,这次终于用心总结了一下:
1. 很好用的在线正则表达式检查:
http://tool.oschina.net/regex/?optionGlobl=global#
2. 通用字符 & 字符
3. 匹配下面的一些 特殊字符 时,需要转义(加上 \ 即可)
* . ? + $ ^ [ ] ( ) { } | \
3. Shell脚本处理数据文件时,怎么把文本中每行的首尾空格去掉?
cat $FILE_NAME|while read line do echo $line|sed 's/^\s*\|\s*$//g'>>$filename_new && echo proceeding... done
s/^\s*\|\s*$//g 正则解释:
- \s 是空格
- ^ 是开头 $ 是结尾 * 是任意多个字符(0或n个)
- | 是或者,需要转义
- /g 是全局
- 开头的s 为搜索,s/a/b/ 意思为把搜索到的a替换为b
s/a/b/g 是把搜索到的a 全部 替换为b : 这里是把搜索到的开头空格或结尾空格替换为空字符。
去掉文本中的所有空格:
sed 's/ *//g'
删除空白行:'/^$/d'
$ cat a abc cde $ cat a|sed '/^$/d' abc cde
4. Hive 中常用的正则匹配提取
regexp_extract(youstr, parttern, int)
每天进步一点点