linux——正则表达式
来源:互联网 发布:nginx 反向代理 编辑:程序博客网 时间:2024/06/05 20:07
使用正则表达式时,需要特别的留意当时环境的语系,否则可能会发现与别人不相同的选项结果。
1.正则表达式中的特殊符号及其含义:
特殊符号代表意义[: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:]代表标点符号,即?,!;:#$[:upper:]代表大写字符,即A-Z[:sapce:]任何会产生空白的字符,包括空格键,Tab,CR等[:xdigit:]代表十六进制的数字类型,包括0-9,A-F,a-f2.grep 的一些基本的用法
grep [-acinv] [--color=auto] '查找字符' filename
参数:
-a : 将binary文件以text文件的方式查找数据
-c:计算找到的‘查找字符’的次数
-i : 不区分大小写
-v : 反向选择,即显示没有‘查找字符’的行
-n : 显示行号
3.设置将查找字符显示高亮的操作
在~./bashrc内加上:alias grep='grep --color=auto'
然后执行命令 source ~./bashrc使其立即生效
4.正则表达式的用法
下面的练习使用‘’c‘’语系
(1)查找特定字符串
a. 显示the字符串
grep -n 'the' regular_expert.txt
b. 反向选择,即显示不带‘the’的行
grep -vn 'the' regular_expert.txt
c. 显示不论大小写的带'the'的行
grep -in 'the' regular_expert.txt
(2)利用中括号[ ]来查找集合字符
a.查找test taste这两个单词的行
grep -n 't[ea]st' regular_expert.txt
中括号里面的只能取其中一个作为值
b. 得到oo前面没有g的行
grep -n '[^g]oo' regular_expert.txt
c.得到oo前面不为小写字符的行
grep -n '[^a-z]oo' regular_expert.txt
或者 grep -n '[^[:lower:]]00' regular_expert.txt
d.得到有数字的行
grep -n '[0-9]' regular_expert.txt
或者 grep -n '[0-9][0-9]*' regular_expert.txt
(3)行首与行尾字符^$
a.得到行首为the的行
grep -n '^the' regular_expert.txt
b.得到行首以小写字符开头的行
grep -n '^[a-z]' regular_expert.txt
或者 grep -n '^[[:lower:]]' regular_expert.txt
c.得到开头不是英文的行
grep -n '^[^a-zA-Z]' regular_expert.txt
d.得到以.结束的行
grep -n '\.$' regular-expert.txt
因为.在正则表达式中有特殊的含义,所以需要转移
e.得到空行
grep -n '^$' regular_expert.txt
(4) 任意一个字符.与重复字符*
小数点与星号在正则表达式中的含义和在通配符中的作用是不一样的,
小数点(.):代表任意一个字符的意思
星号(*): 代表重复前面的字符0遍到无穷多遍
a.得到包含开头是g结束是d,共有四个字符的行
grep -n 'g..d' regular_expert.txt
b.得到包含至少有两个o的字符串的行
grep -n 'ooo*' regular_expert.txt
c.得到包含开头与结尾都是g,但两个g之间仅能存在至少一个o的字符的行
grep -n 'goo*g' regular_expert.txt
d.得到包含以g开头和以g结尾的字符串的行
grep -n 'g.*g' regular_expert.txt
(5)限定连续RE字符范围{}
因为大括号在shell中有特殊的意义,因此使用时用使用转移字符
a.找到两个o的字符串
grep -n 'o\{2\}' regular_expert.txt
b.找到g后面接2个到5个o然后再接一个g的字符
grep -n 'go\{2,5\}g' regular_expert.txt
c.找到g后面接2个及其比上个o然后再接一个g的字符
grep -n'go\{2,\}' regular_expert.txt
5.基础正则表达式字符
- linux——正则表达式
- Linux——正则表达式
- linux—shell正则表达式
- linux学习笔记——正则表达式
- Linux——扩展正则表达式
- linux C正则表达式——POSIX正则测试
- Linux正则表达式-表达式
- 正则表达式—-转义
- 正则表达式—叠词
- Javascript—正则表达式
- Javascript—正则表达式
- 正则表达式—Email
- Javase—正则表达式
- linux——文本处理——正则表达式
- Linux笔记——正则表达式入门及应用
- Linux学习之——特殊字符和正则表达式
- Linux系统编程(16)——正则表达式入门
- Linux系统编程(17)——正则表达式进阶
- VC++错误unresolved external symbol _WinMain@16
- 物联网应用的困惑
- HDOJ 猜数字
- java遍历Map的四种方法
- UC/OS II多任务切换例程
- linux——正则表达式
- boost::algorithm学习
- 随笔
- 浅淡递归路由
- hdu 统计字符
- 命令行高级快捷键
- 模仿QQ按下返回键,程序后台运行,点击通知使其重新运行的应用
- 如何修改vs的使用权
- SPINACH特殊会议记 主题:Do You Remember the Future? Nov,15,2013 Tue