考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
  当前位置:操作系统 > Linux > 文章内容
  

Linux教程:linux通配符和正则表达式的使用

 [ 2017年6月27日 ] 【

  linux通配符的英文名是wildcard,说白了一般只用于文件名匹配, 它是由shell解析的。而正则表达式呢?从简单的角度去理解,你可以把正则表达式看成是一种字符串匹配模式标准。那linux通配符和正则表达式是如何使用的呢?请看下文。

  一、正则表达式:

  元字符是用来阐释字符表达式意义的字符,简言之,就是用来描述字符的字符。

  正则表达式RE(Regular Expression)是由一串字符和元字符构成的字符串。

  正则表达式的主要功能是文本查询和字符串操作,它可以匹配文本的一个字符或字符集合。实际上正则表达式完成了数据的过滤,将不满足正则表达式定义的数据拒绝掉,剩下与正则表达式匹配的数据。

  基本的正则表达式元字符集合及其意义:

linux通配符和正则表达式的使用

  1、“*”符号

  zha*ng :“*”前面的普通字符是a,就表示匹配a字符0次或多次,如:zhng、zhang、zhaaaang……

  (根据测试可以不包括前面的字符,即匹配0次)

  2、匹配空行

  匹配行首的^和匹配行尾的$组合起来“^$”可以用来匹配空行,如果需要匹配只包含一个字符的行,可以用“^.$”

  3、“[]”符号

  匹配字符集合,支持穷举方法列出字符集合的所有元素,也支持使用“-”符号表示字符集合范围。

  [12345] 等价于 [1-5]

  我们知道“^”符号表示匹配行首,但是,“^”符号放到“[]”符号中就不再表示匹配行首了,而是表示取反符号。

  [^b-d] :表示不再b~d范围内的字符

  [A-Za-z] [A-Za-z]* :匹配任意英文单词

  二、正则表达式的扩展:

  扩展的正则表达式元字符及其意义:

linux通配符和正则表达式的使用

  1、“?”符号

  (根据测试可以不包括前面的字符,即匹配0次)

  2、“()”符号和“|”符号

  “()”符号和“|”符号通常结合使用,表示一组可选字符的集合。

  re(a|b|c)d 等价于 re[abc]d

  “|”符号也可以表示多个正则表达式的“或”关系。

  grep -E “zha?ng|zhi” 文件

  三、linux通配符:

  bash shell本身不支持正则表达式,使用正则表达式的是shell命令和工具,如grep,sed,awk。

  bash shell可以使用正则表达式中的一些元字符实现通配(Globbing)功能。

  通配是把一个包含通配符的非具体文件名扩展存储在计算机,服务器或者网络上的一批具体文件名的过程。

  (可以看出通配主要应用匹配文件名上,而正则主要应用于字符串上)

  最常用的通配符包括正则表达式元字符:?、*、[]、{}、^等。

linux通配符和正则表达式的使用

  “{}”符号

  表示一组表达式的集合。如:{[a-h]*.awk ,a?.txt}

  以上便是关于linux通配符和正则表达式的一些使用技巧和作用解释,以前总是把通配符和正则表达式的标志搞混,忘记做笔记,现在看到用户的说说想起自己对于这块也不熟悉,因此特来撰写这篇教程。

本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2007-2013 中华考试网(Examw.com) All Rights Reserved