通配符与正则表达式
2011-12-14 23:50
253 查看
通配符与正则表达式很容易混淆,首先要明白二者是不同的,个人感觉通配符用于Linux的shell命令(如文件名相关操作)中,而正则表达式用于文本内容中的字符串搜索和替换等。通配符是Linux系统本身就支持的,而正则表达式用于vim编辑器或awk程序,这些文本处理工具正是由于支持正则表达式才变得强大。
通配符
[a-z]或[12]:匹配方括号中指定范围内的单个字符或方括号列出的其中一个字符。
[!9]:不匹配方括号中所列字符或指定范围内的单个字符。
*:匹配0个字符或多个字符。
?:匹配任何单个字符,且不能为空字符。
由于shell会将字符?[ ] * 区别对待,因此在命令参数时如果需要用到这几个特殊字符,应将该参数用单引号标注或通过在特殊字符前加转义字符\。
正则表达式
.:匹配任何单个字符,功能上和通配符中的?符号相同。
[a-z]或[12]:功能上和通配符中的[]相同。
[^]:功能和通配符中的[!]相同。
*:匹配该字符的前一个字符的0次或多次出现。
^:匹配所有以指定正则表达式开始的行。
$:匹配所有以指定正则表达式结束的行。
需要注意的是:[]中的特殊字符如.已经失去了其特殊含义,和方括号中的普通字符[12]一样。
通配符
[a-z]或[12]:匹配方括号中指定范围内的单个字符或方括号列出的其中一个字符。
[!9]:不匹配方括号中所列字符或指定范围内的单个字符。
*:匹配0个字符或多个字符。
?:匹配任何单个字符,且不能为空字符。
由于shell会将字符?[ ] * 区别对待,因此在命令参数时如果需要用到这几个特殊字符,应将该参数用单引号标注或通过在特殊字符前加转义字符\。
正则表达式
.:匹配任何单个字符,功能上和通配符中的?符号相同。
[a-z]或[12]:功能上和通配符中的[]相同。
[^]:功能和通配符中的[!]相同。
*:匹配该字符的前一个字符的0次或多次出现。
^:匹配所有以指定正则表达式开始的行。
$:匹配所有以指定正则表达式结束的行。
需要注意的是:[]中的特殊字符如.已经失去了其特殊含义,和方括号中的普通字符[12]一样。
相关文章推荐
- 正则表达式 与 通配符的区别
- linux通配符与正则表达式
- linux下的通配符与正则表达式
- 通配符和正则表达式的区别
- 通配符和正则表达式
- 正则表达式基本元字符,其中包括通配符,范围和闭包
- Hadoop 和 spark 读取多个文件通配符规则(正则表达式)joe
- 【转帖】Ulteredit正则表达式 通配符
- Linux运维学习笔记-通配符及正则表达式知识总结
- [笔记] 软件中的正则表达式和通配符匹配
- [Elasticsearch] 部分匹配 (二) - 通配符及正则表达式查询
- 通配符与正则表达式
- 正则表达式与通配符
- 正则表达式和通配符概念的区别
- MySql like通配符使用(mysql 正则表达式)
- Linux Shell 通配符、元字符、转义符,正则表达式使用实例介绍
- shell中RE(正则表达式)和通配符的区别
- ”*“在正则表达式和通配符的应用
- 正则表达式与通配符
- [Elasticsearch] 部分匹配 (二) - 通配符及正则表达式查询