正则表达式之BRE
来源:互联网 发布:电视墙控制软件 编辑:程序博客网 时间:2024/05/21 18:31
位置
查找/etc/group文件中以”shiyanlou”为开头的行
$ grep 'shiyanlou' /etc/group$ grep '^shiyanlou' /etc/group
数量
// 将匹配以'z'开头以'o'结尾的所有字符串$ echo 'zero\nzo\nzoo' | grep 'z.*o'// 将匹配以'z'开头以'o'结尾,中间包含一个任意字符的字符串$ echo 'zero\nzo\nzoo' | grep 'z.o'// 将匹配以'z'开头,以任意多个'o'结尾的字符串$ echo 'zero\nzo\nzoo' | grep 'zo*'//注意:其中\n为换行符
选择
# grep默认是区分大小写的,这里将匹配所有的小写字母$ echo '1234\nabcd' | grep '[a-z]'# 将匹配所有的数字$ echo '1234\nabcd' | grep '[0-9]'# 将匹配所有的数字$ echo '1234\nabcd' | grep '[[:digit:]]'# 将匹配所有的小写字母$ echo '1234\nabcd' | grep '[[:lower:]]'# 将匹配所有的大写字母$ echo '1234\nabcd' | grep '[[:upper:]]'# 将匹配所有的字母和数字,包括0-9,a-z,A-Z$ echo '1234\nabcd' | grep '[[:alnum:]]'# 将匹配所有的字母$ echo '1234\nabcd' | grep '[[:alpha:]]'
下面包含完整的特殊符号及说明:
特殊符号说明
[:alnum:] 代表英文大小写字节及数字,亦即 0-9, A-Z, a-z[:alpha:] 代表任何英文大小写字节,亦即 A-Z, a-z[:blank:] 代表空白键与 [Tab] 按键两者[:cntrl:] 代表键盘上面的控制按键,亦即包括 CR, LF, Tab, Del.. 等等[:digit:] 代表数字而已,亦即 0-9[:graph:] 除了空白字节 (空白键与 [Tab] 按键) 外的其他所有按键[:lower:] 代表小写字节,亦即 a-z[:print:] 代表任何可以被列印出来的字节[:punct:] 代表标点符号 (punctuation symbol),亦即:" ' ? ! ; : # $...[:upper:] 代表大写字节,亦即 A-Z[:space:] 任何会产生空白的字节,包括空白键, [Tab], CR 等等[:xdigit:] 代表 16 进位的数字类型,因此包括: 0-9, A-F, a-f 的数字与字节
注意:之所以要使用特殊符号,是因为上面的[a-z]不是在所有情况下都管用,这还与主机当前的语系有关,即设置在LANG环境变量的值,zh_CN.UTF-8的话[a-z],即为所有小写字母,其它语系可能是大小写交替的如,"a A b B...z Z",[a-z]中就可能包含大写字母。所以在使用[a-z]时请确保当前语系的影响,使用[:lower:]则不会有这个问题。
// 排除字符$ echo 'geek|good' | grep '[^o]'
注意:当^放到中括号内为排除字符,否则表示行首。使用扩展正则表达式,ERE要通过grep使用扩展正则表达式需要加上-E参数,或使用egrep。
数量
# 只匹配"zo"$ echo 'zero\nzo\nzoo' | grep -E 'zo{1}'# 匹配以"zo"开头的所有单词$ echo 'zero\nzo\nzoo' | grep -E 'zo{1,}'注意:推荐掌握{n,m}即可,+,?,*,这几个不太直观,且容易弄混淆。
选择
//# 匹配"www.shiyanlou.com"和"www.google.com"$ echo 'www.shiyanlou.com\nwww.baidu.com\nwww.google.com' | grep -E 'www\.(shiyanlou|google)\.com'//# 或者匹配不包含"baidu"的内容$ echo 'www.shiyanlou.com\nwww.baidu.com\nwww.google.com' | grep -Ev 'www\.baidu\.com'//注意:因为.号有特殊含义,所以需要转义。
0 0
- 正则表达式之BRE
- 正则表达式之BRE与ERE字符集
- [bash]正则表达式、BRE模式
- 正则表达式 BRE 与 ERE的区别
- POSIX 正则表达式 BRE 与 ERE的区别
- shell学习第七天----基础正则表达式(BRE)
- 第7章 sed、gawk介绍与正则表达式-----------(定义基本正则表达式(BRE)模式)
- 随笔:linux中正则表达式BRE模式下的特殊匹配字符
- 正则表达式之道
- 正则表达式之道
- 正则表达式之道
- 正则表达式之道
- 正则表达式之道
- 深入浅出之正则表达式
- 正则表达式之道
- 正则表达式之道
- 正则表达式之道
- 正则表达式之C#
- C语言实现计算器
- javascript内置对象(五)
- mysql 报错ERROR 1064 (42000),原因使用了mysql保留字
- 一个基于SpringMVC的BBS小系统
- html&css实验8.(3)CSS.hover实现两级菜单
- 正则表达式之BRE
- SynchronousQueue
- Redis 和 I/O 多路复用
- 用RxJava实现Rxbus替换EventBus事件总线
- [BZOJ1737][Usaco2005 jan]Naptime 午睡时间(dp)
- Java流实例-文件复制
- Windows/Linux下的Python安装指导
- Failing to produce to kafka brokers java.nio.BufferUnderflowException
- java多线程并发(一)Semaphore,volatile,synchronized ,Lock, CyclicBarrier和CountDownLatch