在Linux命令行操作或者SHELL编程中总是容易混淆一些特殊字符的使用,比如元字符‘*’号,作为通配符匹配文件名时表示0个到无穷多个任意字符.而作为正则表达式匹配字符串时,表示重复0个到无穷多个的前一个字符.对于通配符和正则表达式之间容易理解的方法就是,在文本过滤命令中这些元字符是用做正则表达式,比如像awk,sed,grep等,主要是针对文件内容的.然而通配符多用在文件名上,比如查找find,ls,cp,mv等等.没有特殊说明,正则表达式就是指基础正则表达式. 1.通配符 Linux中通配符…
grep grep全称:Globally search a Regular Expression and Print 全局搜索正则表达式 正规表达式本质上是一种"表示方法", 只要工具程序支持这种表示方法,那么该工具就可以使用正则表达式处理字符串. 例如 vi, grep, awk ,sed 等等工具,因为她们有支持正规表示法, 所以,这些工具就可以使用正规表示法的特殊字节来进行字串的处理.但例如 cp, ls 等命令并未支持正规表示法, 所以就只能使用 bash 自己本身的wildc…
BRE和ERE的区别 基本正则表达式(BRE)和扩展正则表达式(ERE)的区别仅仅是元字符(meta charactor)的区别而已. BRE: 只有^$.*[]是元字符 ERE: ^$.[]*+(){}?|都是元字符 BRE和ERE的元字符 参考:Shell正则表达式 示例 $echo "abcdefg" | grep 'a.+g' #不匹配任何字符串 $echo "abcdefg" | grep 'a.\+g' #匹配整个字符串 $echo "abcd…
目录 1.扩展正则表达式说明 2.练习 (1)+和?练习 (2)|和()练习 3.注意(重点) 1.扩展正则表达式说明 熟悉正则表达式的童鞋应该很疑惑,在其他的语言中是没有扩展正则表达式说法的,在Shell的正则表达式中还可以支持一些元字符,比如+.?.|.(). 其实Linux系统是支持这些字符的,只是grep命令默认不支持而已(grep命令无法识别扩展正则表达式). 如果要想支持这些字符,必须使用egrep命令或grep -E选项,才能识别扩展正则表达式的字符,所以我们又把这些字符称作扩展字…
BASH中的通配符(wildcard) *:任意长度的任意字符. ?:任意单个字符 []:匹配范围 [^]:排除匹配范围 [:alnum:]:所有字母和数字 [:alpha:]:所有字母 [:digit:]:所有数字 [:lower:]:所有小写字母 [:upper:]:所有大写字母 [:blank:]:空白字符和TAB制表符 [:space:]:包括空白字符.TAB制表符(\t).换页(\f) [:cntrl:]:所有控制字符 [:graph:]:可打印并可看到的字符.空格是可打印的,但是不是…
转自:http://book.51cto.com/art/201303/385961.htm 在读者正觉得正则表达式已经复杂得不能再复杂时,又会发现POSIX规范将正则表达式的实现方法分为了两种:基本正则表达式(BRE)和扩展正则表 达式(ERE).到目前为止,我们所讨论的正则表达式的所有特性,都得到了兼容POSIX的应用程序的支持,并且都是以BRE的方式实现.grep命令就 是这样的一个例子. BRE和ERE到底有什么区别?其实仅仅是元字符的不同!在BRE方式中,只承认^ .$. . .[ .…
egrep及扩展正则表达式与正则表达式不同处 正则表达式有两类,分为基本正则表达式和扩展正则表达式,是使用命令egrep来使用扩展正则表达式,它与grep很多功能相同,仅在元字符上实现了些扩展扩展,在元字符的表示上与基本正则表达式略不同. 1.命令格式: egrep [option] pattern file 2.命令功能: 用于过滤/搜索的特定字符.可使用扩展正则表达式能多种命令配合使用,使用上十分灵活. 3.命令参数:  egrep等同于grep -E选项 扩展正则表达式的元字符: 字符匹配…
目录 正则表达式基础 正则表达式的扩展 通配 grep命令 正则表达式基础 Linux Shell以字符串作为表达式向系统传达意思.元字符(Metacharacters)是用来阐述字符表达式意义的字符,是描述字符的字符,它用于对字符表达式的内容.转换及各种操作信息进行描述.正则表达式是由一串字符和元字符构成的字符串,简称RE(Regular Expression).正则表达式的主要功能是文本查询和字符串操作,它可以匹配文本的一个字符或字符集合. POSIX标准将正则表达式分为两类:基本的正则表达…
一.整理正则表达式博客 (1)正则 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 在linux中,通配符是由shell解释的,而正则表达式则是由命令解释的,下面我们就为大家介绍三种文本处理工具/命令:grep.sed.awk,它们三者均可以解释正则. 正则介绍: ^行首 $行尾 .除了换行符以外的任意单个字符 .*所有字符 *:左边的那一个字符有0个到无穷个 +:左边的那一个字符有1个到无穷个 ?:左边的那一个字…
grep -E 表示支持扩展的正则表达式 grep -E = egrep 一.字符匹配: 扩展模式下的字符匹配与基本正则表达式的字符匹配相同,如: . 表示任意单个字符 [] 表示范围内人任意单个字符,如[0-9],表示任意单个数字 [^] 表示范围外的任意单个字符,如[^0-9],表示出数字外的任意单个字符 二.次数匹配: 上述字符匹配中,基本正则表达式与扩张表达式完全相同,但次数匹配就有些不一样了. * 匹配前面字符任意次,与基本正则表达式意义相同 ? 匹配其前字符0次或1次,其前面不需要…