正则表达式

     正则表达式是由一类特殊字符所编写的模式,通过这些字符的使用,我们能检索 查找文本中符合某些规则的内容。

正则表达式元字符的分类有:字符匹配,匹配次数,位置锚定,分组等。

     字符匹配

     . : 匹配任意单个字符

     [] : 匹配指定范围内的任意单个字符

     [^] : 匹配指定范围外的任意单个字符

    [:alnum:] 数字和字符

   [:alpha:] 英文大小写字符 a-z A-Z
   [:lower:] 小写字母
   [ :upper:] 大写字母
   [:space:] 专门匹配空格

 注意:这几个使用频率相对较高。


   [:cntrl:] 不可打印的控制字符(退格、删除、警铃…)
  [:digit:] 十进制数字 [:xdigit:]十六进制数字
  [:graph:] 可打印的非空白字符
  [:print:] 可打印字符
  [:punct:] 标点符号

 注意:这几个使用频率相对较低。

   匹配次数

* 匹配前面的字符任意次,0 到无穷
.* 任意字符出现任意次,比如说 123 456 abc (这个使用频率很高,很重要)
a* a字符出现任意次   aaaa aa
[[:lower:]]* 任意小写字母出现任意次
\? 匹配前面的字符出现0次或者1次  
a\? 出现0次或者1次
\+ 匹配前面的字符至少1次  
    a\+ a至少出现1次
\{n\} 前面的字符出现n次 
   [0-9]\{3\} 000-999

\{m,n\}匹配前面的字符出现m到n次,m,n是一个范围
  [0-9]\{1,3\} 0-999
\{,n\}匹配前面的字符最多出现n
   [0-9]\{,3\} 最大匹配是999
 \{m,\}匹配前的字符至少出现m次
   [0-9]\{3,\} 000 无穷


     位置锚定
      ^ 锚定行首
      $ 锚定行尾
     ^$ 匹配空行的
     ^[[:space:]] 行首是空白的字符
     ^[[:space:]]*$ 也是 空行
     ^a  以a开头的行
     b$  以b结束的行
     ^a.*b$ 以a开头 中间任意字符 以b结尾的行
     ^a.*[[:space:]]\{3\}.*b$ a开头跟任意字符,中间出现三次空格再跟任意字符 以b结尾的行
     ^# 以#开头的行
     例子:cat /etc/profile | grep -v “^#” | grep -v “^$”
      例子: cat /etc/httpd/conf/httpd.conf  | grep -v “^#” | grep -v “^$” 

    \b  \b 匹配词首和词尾 
   \<  \> 匹配词首和词尾
   例子: \broot\b  \<root\>  锚定root这个单词,不会匹配例如root123之类的单词


      分组 
 将匹配规则分成不同的组 使用 1 2 3..等数字去标识,便于后面使用同样规则的时候可以直接饮用
   \(root\)\+\1 注意:这种使用方法比较常用

   \(string1\+\(string2\)*\) 
   \1  string1\+\(string2\)*
   \2  string2

 或者 |
  a \| b
  C \| cat

原创文章,作者:fsy,如若转载,请注明出处:http://www.178linux.com/72664

(0)
fsyfsy
上一篇 2017-04-06 19:27
下一篇 2017-04-06 21:49

相关推荐

  • centos7 搭建SVN服务器

    运维常见的工作就是日常软件的安装和维护,SVN虽然被Git侵占了市场份额,但是仍然是高效简捷的源码管理工具。从日常软件的安装部署开始,熟悉一些Linux的常用命令。

    Linux干货 2018-03-26
  • 2.Linux文件管理类命令

    Linux文件管理类命令 cp命令:copy 源文件;目标文件; 单源复制:cp [OPTION]… [-T] SOURCE DEST 多源复制:cp [OPTION]… SOURCE… DIRECTORY | cp [OPTION]… -t DIRECTORY SOURCE… 单源复制:cp [OPTION]… [-T]&…

    Linux干货 2017-07-09
  • N21-北京-兔锅-马哥教育网络班21期+第3周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。    who | cut -d' ' -f1 | uniq   2、取出最后登录到当前系统的用户的相关信息。    who | ta…

    系统运维 2016-07-07
  • 第一周-Linux Basic

        本文主要介绍了计算机的组成及功能、Linux的发行版、Linux哲学思想、一些基本命令、命令帮助的获取、文件系统层级结构标准。 一、计算机的组成及功能     计算机由硬件和软件两大类组成     硬件   &n…

    Linux干货 2016-11-28
  • Linux下的文件管理系统

    一、文件系统的FHS标准     因为Linux的属于开源系统,开发人员多,为了统一开发标准,Linux有一个文件系统标准,也就是FHS(Filesystem HierarchyStandard)标准。有了这个标准,那些独立的软件开发商、系统开发人员以及系统的使用者就能方便的在系统上操作。 二、文件系统  &…

    Linux干货 2016-08-02
  • 关于大型网站技术演进的思考(十四)–网站静态化处理—前后端分离—上(6)

    原文出处: 夏天的森林   前文讲到了CSI技术,这就说明网站静态化技术的讲述已经推进到了浏览器端了即真正到了web前端的范畴了,而时下web前端技术的前沿之一就是前后端 分离技术了,那么在这里网站静态化技术和前后端分离技术产生了交集,所以今天我将讨论下前后端分离技术,前后端分离技术讨论完后,下一篇文章我将会以网站 静态化技术的…

    Linux干货 2015-03-03