首页 > 系统服务 > 详细

Shell编程 之 正则表达式

时间:2017-02-10 21:59:07      阅读:276      评论:0      收藏:0      [点我收藏+]

1. 什么是正则表达式

  正则表达式是用于描述字符排列和匹配模式的一种语法规则。

  主要用于字符串的模式分割、匹配、查找 和 替换的操作。

2. 正则表达式与通配符

  2.1 通配符:

    --  *  匹配任意内容

    --  ?  匹配任意一个内容

    --  []  匹配中括号中的一个字符

  2.2 正则表达式与通配符:

    - 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式(搜索字符串的命令能识别正则)。

[root@localhost sh]# grep "echo" process.sh
echo "\$$ is current PID: $$"
echo "\$! is the last PID in background: $!"

    - 通配符用来匹配符合条件的文件名,通配符是完全匹配。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配(搜索文件的命令能识别通配符)。  

[root@localhost sh]# find . -name "abc*"
./abc
./abcd

3. 基础正则表达式

  技术分享

  tips:先在 .bashrc 下定义两个别名,然后 source .bashrc

    技术分享

  3.1 星号  *  :前一个字符匹配0次或任意多次

  3.2 逗点  .   :匹配除了换行符外任意一个字符

  3.3 尖角  ^   :匹配行首,^ 写在前面

  3.4 刀了  $   :匹配行尾,$ 写在后面

  3.5 中括  []   :匹配中括号中指定的任意一个字符

  3.6 中括内尖角  [^a-z]   :匹配除a到z外的任意一个字符

  3.7 转义符   \   :用于取消特殊符号的含义

  3.8 重复符号   \{n\}   :表示其前面的字符恰好出现n次

        重复符号   \{n,\}   :表示其前面的字符出现不小于n次

  3.9 重复次数   \{n,m\}  :匹配其前面的字符至少出现n次,最多出现m次

4. 案例

  例1:匹配日期格式 YYYY-MM-DD

    [ 0 - 9 ] \ { 4 \ }   -    [ 0 - 9 ] \ { 2 \ }    -    [ 0 - 9 ] \ { 2 \ }

  例2:匹配IP地址

    [ 0 - 9 ] \ {1 , 3 \ } \  .  [ 0 - 9 ] \ { 1 , 3 \ } \  .  [ 0 - 9 ] \ { 1 , 3 \ } \  .  [ 0 - 9 ] \ { 1 , 3 \ } 

Shell编程 之 正则表达式

原文:http://www.cnblogs.com/wnzhong/p/6387975.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!