三、正则表达式
目录
- 1.正则表达式
- 2.正则表达式的扩展
- 3.通配
1.正则表达式
元字符(Metacharacters)
定义
描述字符的字符,它用于对字符表达式的内容、转换及各种操作信息进行描述
作用
用来阐释字符表达式意义的字符
正则表达式(RE (Regular Expression))
定义
由一串字符和元字符构成的字符串
作用
进行文本查询和字符串操作,它可以匹配文本的一个字符或字符集合
基本的正则表达式元字符集合及其意义
符号 意义 * 0个或多个在*字符之前的那个普通字符 . 匹配任意字符 ^ 匹配行首,或后面字符的非 $ 匹配行尾 [] 匹配字符集合 \ 转义符,屏蔽一个元字符的特殊意义 <> 精确匹配符号 {n} 匹配前面字符出现n次 {n,} 匹配前面字符至少出现n次 {n,m} 匹配前面字符出现n~m次 特殊用法
匹配空行
^$ #该正则表达式既匹配行首,又匹配行尾,中间没有任何字符,因此为空行
“^”表示取反
""符号表示匹配行首,但是“”符号放到“[]”符号中就不再表示匹配行首了,而是表示取反符号
[^b-d] # "^"表示取反
2.正则表达式的扩展
扩展的正则表达式元字符及其意义
符号 意义 ? 匹配0个或1个在其之前的那个普通字符 匹配1个或多个在其之前的那个普通字符 () 表示一个字符集合或用在expr中 | 表示“或”,匹配一组可选的字符 说明
“()”符号通常与"|"符号结合使用,表示一组可选字符的集合
re(a|e|o)d # 匹配read、reed、reod
3.通配
bash shell可以使用正则表达式中的一些元字符实现通配(globbing)功能。
?、*、[]、{}、^等这些元字符在通配中的意义与正则表达式中的意义不完全一致,*符号表示任意位的任意字符,?字符表示一个任意字符,^符号在通配中代表取反。
内部变量GLOBIGNORE保存了通配时所忽略的文件名集合。
?、*、[]、{}、^五个符号和GLOBIGNORE变量构成了shell通配的所有内容。
赞 (0)