正则表达式

来源:互联网 发布:php base64解码 乱码 编辑:程序博客网 时间:2024/05/20 20:17
1.正则表达式
 一种用来描述文本模式的特殊语法,当从一个文件或命令输出中抽取或过滤文本时,可以使用正则表达式( RE),它是一些特殊或不很特殊的字符串模式的集合。我们给出抽取操作应遵守的一些规则。这些规则由一些特殊字符或进行模式匹配操作时使用的元字符组成。也可以使用规则字符作为模式中的一部分进行搜寻。例如, A将查询A,x将查找字母 x。

^     只只匹配行首

$    只只匹配行尾        

*    只一个单字符后紧跟 *,匹配0个或多个此单字符

[]    只匹配 [ ]内字符。可以是一个单字符,也可以是字符序列。可以使用表示
[]内字符序列范围,如用 [1-5]代替[12345]

\    只用来屏蔽一个元字符的特殊含义。因为有时在shell中一些元字符有特殊含义。\可以使其失去应有意义。

.    只匹配任意单字符
pattern\{n\}    只用来匹配前面 pattern出现次数。 n为次数
pattern\{n,\}m    只含义同上,但次数最少为 n
pattern\{n,m\}  n到m之间的次数


举例:
1.  A\{2\}B  A出现2次, AAB
2.  A\{4,\}B A最少出现4次,AAAAB,AAAAAAB
3.  A\{2,4\}B  A出现2--4次
4.  [0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}; IP地址
5.  ...x..x..x  可以匹配权限问题(ls -l } grep "...x..x..x")
6.  ^d  匹配以d开有的字符串(ls -l | grep "^d")
7.  ^$   匹配所有的空行,经常与sed中使用替换规则
8.  ^.$  如果值包含一个字符的行
9.  ja*k  可以匹配jack, jakk, jask, jacck, jaccck......
10. [S,s]ystem  匹配System, system
11. [0-9]\{2\}-[0-9]\{2\}-[0-9]\{2\}  匹配格式dd-mm-yyyy

2.一些特殊的字符
  $ . ' " [ ] ^ | 0 \ + ?
我们可以使用\对他的作用进行屏蔽
 \^s  这次就不是匹配s开头的了
 \*\.txt   匹配任意的以.txt文件结尾的文件

0 0