1、 什么是通配符,什么是正则表达式
通配符,通配符是用来通配的,说白了一般只用于文件名匹配,它是由shell解析的
正则表达式:正则表达式是用来匹配字符串的,你可以把正则表达式看成是一种字符串匹配模式标准
2、在什么地方使用通配符?
答案是只要是shell命令行或者shell脚本中,你都可以使用通配符;
3、在什么地方使用正则表达式?
当你使用能够支持正则表达式的工具软件进行字符串处理时你就可以使用正则表达式(如:egrep、sed、awk)
以各种程度来支持这种字符串搜索模式,它们就是标准的实现,你可以在这种软件中使用正则表达式这种“匹配模式标准”。
你还可以在支持正则表达式的语言中使用正则表达式,比如perl,java... C++中也有专门用于支持正则表达式的库。
4、正则表达式,与通配符的区别
在文本过滤工具里,都是用正则表达式,比如像awk,sed,等,是针对文件的内容的
正则表达式:(简称RE Regular Expression)是由一串字符和元字符构成的字符串
正则表达式的基本元素:普通字符 例如a b c 1 2 3 可以按照字面上的理解,a只能理解为小写字母a
元字符 元字符就是描述字符的字符,它用于对字符表达式的内容、转换及各种操作信息进行描述 。例如* ^ [ ] *:字符字面只是一个星号符号但它还包含其它意义
基本的正则表达式无字符集合及其意义:
符号 |
意义 |
* |
0个或多个在*之前的那个普通字符 |
. |
匹配任意字符 |
^ |
匹配行首 |
$ |
匹配行尾 |
[ ] |
匹配字符集合 |
\ |
转义字符 |
\<\> |
精确匹配符号 |
\{n\} |
匹配前面字会出现N次 |
\{n,\} |
匹配前面字符至少出现N次 |
\{n,m\} |
匹配前面字符出现n~m次 |
元字符的意义和用法
1. " * "符号 用于匹配前面一个普通字符的0次或多次重复,
hel*o # 星号前面普通字符是l,*字就表示匹配l字符0次或多次,如字符串 hel0,hello
[root@centso-test tmp]# ls -d hel*
hel[1,3,4,5]o hel1o hel2o hel3o hel4o #显示结果
2. " . " 用于匹配任意一个字符
...73. #表示前面三个为任意字符第4和第5个为73,后面为任意字符的集合
3 . "^" 用于匹配行首,表示行首的字符是“^”字符后面的那个字符。
^cloud # 匹配以cloud为首的行
^...X86* # 匹配前面为任意三个字符(可以是空格)第4`6个为X86然后重复匹配6的行。 如567X8666666 , 5 8X8666
4. "$" 匹配行尾,放于要匹配的字符的后面。
mark$ # 表为区配以mark结尾的所有行
^$ # 与匹配行首^相结合则 表示匹配空行
5. [ ] 匹配字符集合,用“-”来连接字符的范围
[ A-Z ] # 表示大写字母A-Z的集合
[^ A-Z ] # "^" 放到中括号里表示取反的意思,则表示匹配除大写A-Z以外的所有字符
未完待续。。。。
原文链接:https://www.f2er.com/regex/361125.html