正则表达式

1. 正则表达式相关介绍

(1)从文件或者命令中抽取或者过滤特定模式的的文本时常用正则表达式。

(2)正则表达式(RE)是一些字符串(字符串中包含特殊含义字符或者普通字符)模式的集合。

(3)正则表达式在grep、awk、sed命令中使用比较广泛。

(4)写正则表达式时先想好预期的输出结果。

2. 基本元字符及含义

基本元字符及其含义
元字符含义
^匹配行首
$匹配行尾
*单个字符之后,匹配0个或多个该字符
[]表示字符序列范围
\屏蔽元字符的含义,使其失去特殊意义
.匹配任意单个字符
.*匹配任意字符
pattern\{n\}匹配前面模式出现次数,前面模式出现n次
pattern\{n,\}匹配前面模式出现次数,前面模式至少出现n次
pattern\{n,m\}匹配前面模式出现次数,前面模式出现n到m次

3. 基本元字符使用

(1)^匹配行首字符串或字符序列

  例子1:  ^001 匹配001开头的字符串。

  例子2:目录执行ls -l 返回 结果中使用^d筛选出目录。  

  例子3: ^..12    匹配以任意两个字符开头,然后是12的字符。

(2)$匹配行首字符串或字符序列

  例子1:1c$  以1c结尾的字符串

  例子2:^$    匹配空行

  例子3:^.$  匹配单个字符的行

  (3)  *匹配字符串中前面单个字符或者重复序列(0次或者多次)

  例子1:compu*t   可以出现的结果:compy、comput、compuut等

(4)[]匹配一个范围或者集合

  例子1:[1-9]或者[1,2,3,4,5,6,7,8,9] 匹配1到9任意1个数字

  例子2:[a-z]    匹配任意1个小写字母

  例子3:[A-Z]   匹配任意1个大写字母

  例子4:[a-z A-Z]  匹配任意字母

  例子5:[a-z A-Z 0-9]  匹配任意字母或者数字

  例子6:[a-z A-Z]*    匹配任意单词

  例子7:[^0-9]  匹配任意非数字字符,^在括号内表示不匹配

  例子8:[Ss]ys  匹配Sys或者sys

(5)\屏蔽特殊符号的含义

  特殊符号包括:$  .  '  "  * [  ]  ^  | ( ) \  + ?

 例子1:\.doc$  匹配".doc"结尾的文件

 例子2:\$         匹配包含“$”的行

 (6). 匹配单个字符

例子1: x..d  匹配 x开头d结尾,中间为任意2个字符的字符串(字符可以为数字或者字母)

   (7) .* 匹配任意字符(任意字符任意个数)

例子1: x.*d  匹配x开头d结尾的任意字符串。

(8)pattern\{n\}匹配n次模式;pattern\{n,\}匹配至少n次模式;pattern\{n,m\}匹配n到m次模式

例子1: B\{3\}A   匹配BBBA

例子2: B\{3,\}A    匹配BBBA、BBBBA等

例子3:B\{3,5\}A   匹配BBBA、BBBBA、BBBBBA

例子4:[a-z A-Z]\{3\}XX[0-9]\{2\}  匹配前面3个字符是字母中间是XX后面两个字符是数字

4. 正则表达式实际应用

(1)匹配任意行 [^.*$]

  (2)   匹配IP地址 [0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}

(3)匹配日期 yyyy-mm-dd   [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\} 

(4)匹配至少1个小写字母  [a-z][a-z]*

  (5)   非d开头的字符串序列    ^[^d]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值