正则表达式,文件名通配,扩展正则之间的一些异同
2016-03-10 22:09
393 查看
正则表达式是一个神器,但初学linux时候还有文件名通配这样的东东。今天就总结一下文件名通配,正则表达式,扩展正则表达式之间有什么异同。可能写的不全,求指教。
使用方面: 正则多用来匹配过滤文本内容。 文件名通配符则用来匹配文件名较多。支持命令: 文件处理,查看cp find ls rm mv touch 等一系列的文件匹配查找命令。(和上面说的是一个意思) 正则表达式则用在文本内容处理的各种工具grep,awk,sed,vim末行模式等。匹配功能上正则规矩多,自然能力更强大,所以就这的区别多点。匹配规则上相同点:一.字符匹配: [:digit:]数字、[:lower:]小写、[:upper:]大写、[:alpha:]字母、[:alnum:]字母数字、[:punct:]标点、[:space:]空格 [xdigit]16进制 两者相同。[^]括号内除外。[]括号内任一字符匹配。[]内的- ,的使用 两者规则也相同。 二. 次数匹配
在正则中支持次数匹配且分为精确次数和模糊次数,在文件名通配中只支持*。 文件名通配中 ?表示任意单个字符且这个字符会出现一次。 *表示任意字符出现任意次。 正则中 .在表示任意字符,*表示*前面的字符出现任意次。.*表示任意字符出现任意次。?表示前面的字符出现1次或0次,即表示前面的字符可有可无。?需要转义。三. 位置锚定。 正则支持,通配符不支持。 匹配由非特殊字符组成的单词。正则匹配,文件名通配不支持。
内容分组及引用。正则支持,文件名通配不支持。因为扩展正则和文件名通配的区别和上面的一致,就(同上)。
扩展正则和正则的区别。
扩展正则中次数匹配中? + {} 不在需要\ 转义符 。 位置锚定中的单词整体锚定<>都还需要\转义符。 内容分组()也不需要\转义符。 扩展正则中提供了新的匹配规则,或者|。
写完了。
使用方面: 正则多用来匹配过滤文本内容。 文件名通配符则用来匹配文件名较多。支持命令: 文件处理,查看cp find ls rm mv touch 等一系列的文件匹配查找命令。(和上面说的是一个意思) 正则表达式则用在文本内容处理的各种工具grep,awk,sed,vim末行模式等。匹配功能上正则规矩多,自然能力更强大,所以就这的区别多点。匹配规则上相同点:一.字符匹配: [:digit:]数字、[:lower:]小写、[:upper:]大写、[:alpha:]字母、[:alnum:]字母数字、[:punct:]标点、[:space:]空格 [xdigit]16进制 两者相同。[^]括号内除外。[]括号内任一字符匹配。[]内的- ,的使用 两者规则也相同。 二. 次数匹配
在正则中支持次数匹配且分为精确次数和模糊次数,在文件名通配中只支持*。 文件名通配中 ?表示任意单个字符且这个字符会出现一次。 *表示任意字符出现任意次。 正则中 .在表示任意字符,*表示*前面的字符出现任意次。.*表示任意字符出现任意次。?表示前面的字符出现1次或0次,即表示前面的字符可有可无。?需要转义。三. 位置锚定。 正则支持,通配符不支持。 匹配由非特殊字符组成的单词。正则匹配,文件名通配不支持。
内容分组及引用。正则支持,文件名通配不支持。因为扩展正则和文件名通配的区别和上面的一致,就(同上)。
扩展正则和正则的区别。
扩展正则中次数匹配中? + {} 不在需要\ 转义符 。 位置锚定中的单词整体锚定<>都还需要\转义符。 内容分组()也不需要\转义符。 扩展正则中提供了新的匹配规则,或者|。
写完了。
相关文章推荐
- LeetCode : Longest Valid Parentheses [java]
- UVA 10917(p330)----Walk through the Forest
- 分治法与递归编程步骤
- 初刷leetcode编程题总结
- 工作4年的程序员折腾之路
- 组件基础和COM接口
- Java基础复习系列一
- OSChina AlphaAnimation
- 对在线教育的一点感触
- 读《我是一只IT小小鸟》有感
- 27735: 死亡拆分II
- 初探nginx架构
- Hibernate学习——(五)基于Annotation的一对一外键映射
- Spring MVC 基于URL的映射规则(注解版)
- BZOJ4415 [SHOI2013] 发牌
- c++基础知识
- Android四大组件之一服务
- C++ DirectX 游戏开发中级视频教程 06 资源下载链接
- Servlet 是否线程安全 看完便知
- nginx配置中location匹配规则