正则表达式使用小结

工作以来一直都在断断续续使用正则表达式。可惜每次用时都百度,这次终于用心总结了一下:

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)