正则表达式和通配
发布时间:2020-12-14 02:04:09 所属栏目:百科 来源:网络整理
导读:几个概念: 1.基本正则表达式 扩展的正则表达式 (由普通字符+元字符组成) 2.通配 (由普通字符+元字符组成) 3.元字符 注意:正则表达式中元字符的意义和通配中元字符的意义有区别的 bash shell本身不支持正则表达式,使用正则表达式的是shell的一些命令和
几个概念:
1.基本正则表达式 扩展的正则表达式 (由普通字符+元字符组成) 2.通配 (由普通字符+元字符组成) 3.元字符 注意:正则表达式中元字符的意义和通配中元字符的意义有区别的 bash shell本身不支持正则表达式,使用正则表达式的是shell的一些命令和工具,如grep,sed,awk等等 但是bash可以使用正则表达式中的一些元字符实现通配的功能,此时的这些元字符叫通配符。 此时通配中元字符的意义跟正则表达式中元字符的意义就不一样了。 通配是指:将一个包含通配符的非具体的文件名扩展为计算机,服务器,网络上的一批具体的文件名的过程。 基本正则表达式中元字符的意义如下: 1. * 匹配*前面的那一个字符的0次或多次 如hel*o heo helo hello helllo ...... 2. . 匹配任意一个字符(只匹配一个,可以是空格) 如ab. abc abd ab3 ab ...... 3. ^ 匹配行首,行首的字符序列必须是^后的字符序列 如^suda sudahuhuhuuuuuhuuh sudaokokokokokoko ...... 4. & 匹配行尾,行尾的字符序列必须是$前的字符序列 如suda$ jijijijijiiijijsuda lkokokokokjijhuhsuda ...... 特殊的 ^$ 匹配一个空行 ^.$ 匹配只有一个字符的空行 5. [] 匹配字符集合中的任意一个字符(只匹配一个) 如[1234] [1-4] 匹配1,2,3,4的任意一个字符 注意:^放在[]里面时,不再表示匹配行首,而是取反的意思 [^1234] [^1-4] 匹配不是1,2,3,4的任意一个字符 [A-z][A-z]* 匹配任意一个英文单词 6. 用于转义元字符,使之成为普通字符 如* 此时*表示一个普通字符 7. &;&; 用于精确匹配 如&;the> 表示精确匹配the这个单词,而不是them then等等 8.{}系列符号 {n} 匹配前面字符的n次 {n,} 匹配前面字符的至少n次 如JO{3}B 匹配JOOOB 如JO{3,}B 匹配JOOOB JOOOOB ...... 扩展的正则表达式中元字符的意义如下: 1. ? 匹配前面的那一个字符的0次或1次 如JO?B 匹配 JB JOB JOOB 2. + 匹配前面的那一个字符的1次或多次 如JO+B 匹配 JOOB JOOOB ...... 3. |与()通常结合使用,表示一组可选的字符集合 如re(a|o|e)d 匹配read reod reed 等同于re[aoe]d 通配中的元字符的意义如下: 1. * 表示任意多的任意字符 2. ? 表示一个任意字符 3. ^ 表示取反 4. [] 同正则表达式的用法 5. {} 表示一组表达式的集合 {}中表达式是或的关系 如ls -l {*.cpp,[1234]*.c} 列出满足表达式*.cpp或者[1234]*.c的文件。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |