linux中正则表达式简介
2015-09-05 00:52
495 查看
1.正则表达式
正则表达式(Regular Expression,简写RE)是通过一些特殊字符的排列组成。正则表达式并不是一个工具程序,而是一种字符串处理的标准依据。如果想要使用正则表达式来处理字符串,就必须使用支持正则表达式的工具程序才行,这类工具有很多,比如sed,awk,grep等。值得注意的是,linux中ls/cp这样的工具并不支持正则表达式,所以他们只能使用shell中自带的通配符,比如*,?符号等。正则表达式和通配符是两回事哦
备注:*表示零到多个任意字符;?表示一个任意字符。
2.正则表达式按照不同的严谨程度分为基础正则表达式与扩展正则表达式。
3.基础正则表达式的RE字符
^word 表示待查找的字符串word在行首
word$ 表示待查找的字符串word在行尾
. 点号表示一定有一个任意字符
\ 转义字符
* 重复零个到无穷多个的前一个字符
[list] 匹配只要包含list中任意RE字符的字符串
[n1-n2] n1和n2可以是数字亦可以是字母,匹配包含了n1到n2区间中任意一个字符的字符串
[^list] 匹配不包含list中任意RE字符的字符串
\{n,m\} 表示连续n到m个前一个RE字符
[:alnum:] 表示英文大小写字符及数字
[:alpha:] 表示任何英文大小写字符
[:digit:] 代表任意数字字符
[:lower:] 代表小写字母,即a-z
[:upper:] 代表大写字符,即A-Z
备注:[:alpha:]、[:upper:] 等这样的RE字符,必须配合[]使用。例如[[:alnum:]]表示[0-9a-zA-Z],若单用[:alnum:]则表示匹配包含:alnum:中任意一个字符的字符串。
4.扩展正则表达式RE字符
+ 重复一个或一个以上的前一个RE字符
? 零个或一个的前一个RE字符
| 用或的方式找出数个字符串
() 字符串组
()+ 多个字符串组
备注:grep默认仅支持基础正则表达式,如果要使用扩展正则表达式,需要使用grep -E,或者egrep。其中egrep和grep -E是同一个东西。
正则表达式(Regular Expression,简写RE)是通过一些特殊字符的排列组成。正则表达式并不是一个工具程序,而是一种字符串处理的标准依据。如果想要使用正则表达式来处理字符串,就必须使用支持正则表达式的工具程序才行,这类工具有很多,比如sed,awk,grep等。值得注意的是,linux中ls/cp这样的工具并不支持正则表达式,所以他们只能使用shell中自带的通配符,比如*,?符号等。正则表达式和通配符是两回事哦
备注:*表示零到多个任意字符;?表示一个任意字符。
2.正则表达式按照不同的严谨程度分为基础正则表达式与扩展正则表达式。
3.基础正则表达式的RE字符
^word 表示待查找的字符串word在行首
word$ 表示待查找的字符串word在行尾
. 点号表示一定有一个任意字符
\ 转义字符
* 重复零个到无穷多个的前一个字符
[list] 匹配只要包含list中任意RE字符的字符串
[n1-n2] n1和n2可以是数字亦可以是字母,匹配包含了n1到n2区间中任意一个字符的字符串
[^list] 匹配不包含list中任意RE字符的字符串
\{n,m\} 表示连续n到m个前一个RE字符
[:alnum:] 表示英文大小写字符及数字
[:alpha:] 表示任何英文大小写字符
[:digit:] 代表任意数字字符
[:lower:] 代表小写字母,即a-z
[:upper:] 代表大写字符,即A-Z
备注:[:alpha:]、[:upper:] 等这样的RE字符,必须配合[]使用。例如[[:alnum:]]表示[0-9a-zA-Z],若单用[:alnum:]则表示匹配包含:alnum:中任意一个字符的字符串。
4.扩展正则表达式RE字符
+ 重复一个或一个以上的前一个RE字符
? 零个或一个的前一个RE字符
| 用或的方式找出数个字符串
() 字符串组
()+ 多个字符串组
备注:grep默认仅支持基础正则表达式,如果要使用扩展正则表达式,需要使用grep -E,或者egrep。其中egrep和grep -E是同一个东西。
相关文章推荐
- yum错误
- Linux命令备忘实例(5)——切取命令
- Chapter4.1.1linux常用命令 文件处理ls ls
- Linux初级阶段常见配置文件大全
- Linux系统中RPS/RFS介绍
- 开源知识库管理系统选型 centos6.4 搭建knowlededgeroot-1.0.4知识库平台
- Linux命令汇总之正则表达式
- Linux下安装JDK
- get_optlong用法(linux解析命令行参数)
- Linux程序设计-读书笔记2
- Linux开机流程
- 如何查看linux系统是32位还是64位
- Linux下编程-----文件与IO(二)stat函数
- Linux下进程线程,Nignx与php-fpm的进程线程方式
- 分享《学习linux几点忠告》
- Understanding the Linux Kernel
- 使用Putty连接Ubuntu虚拟机
- Linux系统管理 --磁盘管理与系统管理
- linux命令
- linux分享之locate、find命令使用总结