shell正则表达式

原创 2008年09月30日 22:13:00
句点"."匹配单字符
1) . : 匹配任意单ASCII 字符,可以为字母,或为数字。
2) 举例: ..XC..匹配deXC1t、23XCdf 等,.w..w..w.匹配rwxrw-rw-
行首以^匹配字符串或字符序列
1) ^ : 允许在一行的开始匹配字符或单词。
2) 举例: ^.01 匹配0011cx4、c01sdf 等,^d 匹配drwxr-xr-x、drw-r--r--等
行尾以$匹配字符串或字符
1) $ : 在行尾匹配字符串或字符,$符号放在匹配单词后。
2) 举例: trouble$ 匹配以单词trouble 结尾的所有行
^$匹配所有空行
 
使用*匹配字符串中的单字符或其重复序列(与文件名置换中的"*"不一样)
1) * : 一个单字符后紧跟*,匹配0 个或多个此单字符。
2) 举例: compu*t 将匹配字符u 一次或多次,即匹配computer computing compuuute 等
1033* 可以匹配 101333 10133 1013444 等
3) 在正则表达式中使用"*",有时会产生非预期的结果。
 
使用/屏蔽一个特殊字符的含义
1) / : 用来屏蔽一个元字符的特殊含义。因为有时在shell 中元字符有特殊含义。/可以使其失去应有意义。
2) 举例: 在正则表达式中匹配以*.pas 结尾的所有文件: /*/.pas$
 
使用[]匹配属于一个范围或集合单个字符
1) [ ] : 匹配"[ ]"内的字符。可以是一个单字符,也可以是字符序列。可以使用"-"表示括号"[ ]"内字符序列范围,
如用[1-5]代替[12345]。可以用逗号","分隔括号"[]"内的字符。
2) 当"^"符号当直接靠着"[",意指否定或不匹配括号"[]"里内容
3) 举例: [0-9]匹配任意一个数字;[a-z]匹配任意一个小写字母;[0-9A-Za-z]匹配任意字母或数字;
[C,c]omputer 匹配Computer 和computer;[^a-zA-Z]匹配任一非字母型字符
 
使用"/{/}"匹配模式结果出现的次数
1) pattern/{n/}   : 匹配模式pattern 出现n 次的情形。
2) pattern/{n,/}  : 匹配模式pattern 最少出现n 次的情形。
3) pattern/{,m/}  : 匹配模式pattern 最多出现m 次的情形。
4) pattern/{n,m/} : 匹配模式pattern 出现次数在n 与m 之间的情形。
5) 举例: A/{2/}B 匹配的值为AAB
A/{2,/}B   匹配的值可以是AAB 或AAAAAB,但不能匹配AB
A/{2,4/}B  匹配的值可以是AAB、AAAB、AAAAB,但不能匹配AB 或AAAAAB 等
[0-9]/{4/}CX[0-9]/{4/}  匹配数字出现4 次后跟CX,最后是数字出现4 次的情形
6) 实际上真正的格式是 {n} {n,} {,m} {n,m},只不过对"{"和"}"应用了Esacpe 字符"/"。
 
经常使用的正则表达式举例
[Ss]igna[lL]   匹配单词signal、signaL、Signal、SignaL
[Ss]igna[lL]/. 同上,但加一句点
^USER$         只包含USER 的行
/.             带句点的行
^d..x..x..x    对用户、用户组及其他用户、组成员有可执行权限的目录
^[^l]          排除符号链接文件后的文件目录列表(即不是以"l"开始的行)
[yYnN]         大写或小写y 或n
^.*$           匹配行中任意字符串
^......$       包括6 个字符的行
[a-zA-Z]       任意单个字母
[a-z]*         至少一个小写字母
[^0-9/$]       非数字或美元符号
[123]          1 到3 中一个数字
/^q            以^q 开始行
^.$            仅有一个字符的行
^/.[0-9][0-9]  以一个句点和两个数字开始的行
[0-9]/{2/}-[0-9]/{2/}-[0-9]/{4/}                日期格式dd-mm-yyyy
[0-9]/{3/}/.[0-9]/{3/}/.[0-9]/{3/}/.[0-9]/{3/}  类IP 地址格式
                                                nnn.nnn.nnn.nnn
.*             匹配任意多个字符

shell之正则表达式

一 正则表达式 正则表达式:描述某些字符串匹配规则的工具 使用原因:程序设计过程中不可避免的遇到处理某些文本情况,有时候要查找符合某些比较复杂规则的字符串。正则表达式以非常简单的代码完成。 ...
  • qq504196282
  • qq504196282
  • 2016年11月01日 13:51
  • 1068

shell浅谈之四正则表达式

一、简介       Shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式,有三种常用的循环语句:for、while和until。while循环和for循环属于“当型循环”,而u...
  • taiyang1987912
  • taiyang1987912
  • 2014年09月09日 15:09
  • 1679

《Linux Shell》笔记之正则表达式

正则表达式的文法分为3种标准:BRE、ERE 和 ARE。其中 BER 和 ERE 属于 POSIX 标准,ARE 则是由各家定义的扩展BRE:基本正则表达式ERE:在BRE基础上,扩展正则表达式什么...
  • hello_yang213
  • hello_yang213
  • 2015年10月26日 18:20
  • 1713

shell 常用正则表达式

“^\d+$” //非负整数(正整数 + 0) “^[0-9]*[1-9][0-9]*$” //正整数 “^((-\d+)|(0+))$” //非正整数(负整数 + 0) “^-[0-9]*[1-9]...
  • DLUTBruceZhang
  • DLUTBruceZhang
  • 2013年07月05日 19:53
  • 5203

shell脚本学习笔记 (正则表达式)

shell脚本学习笔记(正则表达式)
  • zr1076311296
  • zr1076311296
  • 2016年04月12日 20:13
  • 3292

shell 下正则表达式的匹配

一、用法讲解 (1).匹配任意单字符 例如:..xc..表示第一、二、五、六个字母任意三四个字母是xc的字符串 ^匹配字符串的开头的字母 例如:^d表示以d开头的字符串 $匹配字符串结尾的字...
  • Javascxl
  • Javascxl
  • 2014年08月04日 09:44
  • 1763

shell学习第八天----扩展正则表达式(ERE)

扩展正则表达式(ERE) 拥有笔记本正则表达式更多的功能.BRE与ERE在大多数的meta字符与功能应用上几乎是完全一致,单ERE理由写meta字符看起来与BRE类似,却具有完全不同的类型.   ...
  • shanyongxu
  • shanyongxu
  • 2015年06月11日 12:21
  • 1038

Linux学习-shell利用正则表达式验证邮箱合法性

引文:在今天这个时代,Email已经成为一种重要的通信方式。给导师发邮件,学术研究之间的交流,etc。常常用到Email,然而Email的验证却有点小难度,下面给出一个在Linux下使用shell脚本...
  • Dream_angel_Z
  • Dream_angel_Z
  • 2015年05月25日 20:29
  • 3042

Shell基础(四):正则表达式、cut、awk、sed命令

前言: 正则表达式是描述字符排列和匹配模式的一种语法规则。主要用于字符串的模式分割、匹配、查找及替换。(主要为了模糊匹配) 1、正则表达式与通配符区别 ①通配符(* ? [])用来匹配符合条件的...
  • lyc_stronger
  • lyc_stronger
  • 2016年03月11日 11:04
  • 2262

关于shell中的正则表达式和awk的使用

今天有幸得方叔开的小灶,特将课堂笔记整理如下,以备后续使用。         1、关于正则表达式 egrep和grep -e都可接正则表达式,若使用grep接正则表达式,则表达式中的"...
  • yingkongshi99
  • yingkongshi99
  • 2015年08月28日 21:58
  • 1456
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:shell正则表达式
举报原因:
原因补充:

(最多只允许输入30个字)