概述
首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同!
find:开始之前,我们先来看一下 find 命令的基本结构:
find start_directory test options criteria_to_match action_to_perform_on_results
find ./ -name a.out
在以下命令中,find 将开始在当前目录(用“.”表示)中查找任何扩展名为“java”的文件:
find . -name "*.java" (-name 参数后面跟的是通配符,'.'在通配符中不是元字符,在
正则表达式中是)
shell常见通配符:
字符 | 含义 | 实例 |
* | 匹配 0 或多个字符 | a*b a与b之间可以有任意长度的任意字符, 也可以一个也没有, 如aabcb, axyzb, a012b, ab。 |
? | 匹配任意一个字符 | a?b a与b之间必须也只能有一个字符, 可以是任意字符, 如aab, abb, acb, a0b。 |
[list] | 匹配 list 中的任意单一字符 | a[xyz]b a与b之间必须也只能有一个字符, 但只能是 x 或 y 或 z, 如: axb, ayb, azb。 |
[!list] | 匹配 除list 中的任意单一字符 | a[!0-9]b a与b之间必须也只能有一个字符, 但不能是阿拉伯数字, 如axb, aab, a-b。 |
[c1-c2] | 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z] | a[0-9]b 0与9之间必须也只能有一个字符 如a0b, a1b... a9b。 |
{string1,string2,...} | 匹配 sring1 或 string2 (或更多)其一字符串 | a{abc,xyz,123}b a与b之间只能是abc或xyz或123这三个字符串之一。 {1..3}.txt 这种情况就只可能是1.txt或2.txt或3.txt a{1,2}b{3,4} 这样会依次匹配输出结果是a1b3 a1b4 a2b3 a2b4 |
需要说明的是:通配符看起来有点象正则表达式语句,但是它与正则表达式不同的,不能相互混淆。
把通配符理解为shell 特殊代号字符就可。而且涉及的只有,*,? [] ,{} 这几种。
最后
以上就是内向冬天为你收集整理的正则表达式与通配符的区别的全部内容,希望文章能够帮你解决正则表达式与通配符的区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复