关于 grep及正则表达式

grep及正则表达式

正则表达式(REGular EXPression,REGEXP)是对字符串和特殊字符(元字符)操作的一种逻辑公式,使用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。通常被用来检索、替换那些符合某个模式的文本。

正则表达式又分为基本正则表达式(Basic REGEXP)和扩展正则表达式(Extended REGEXP)。

常见的用途就是用来比对垃圾邮件。

万用字符

列举一些万用字符,跟正则表达式不通。

  • *:任意长度的任意字符
  • ?:任意单个字符
  • []:括号内的单个字符

    • [abcd]:可以是a,b,c,d中任何一个,但必须有
    • [0-9]:可以是0到9的任何一个数字,但必须有
  • [^]:非括号内字符的单个字符

正则表达式POSIX字符类

特殊符号代表意义
[:alnum:]0-9,a-z,A-Z
[:alpha:]a-z,A-Z
[:digit:]0-9
[:xdigit:]任何十六进制数字
[:lower:]a-z
[:upper:]A-Z
[:cntrl:]ASCII控制字符(ASCII 0~31 和 ASCII 127)
[:print:]任何可打印字符
[:punct:]标点符号
[:blank:]空格或制表符([\t ])
[:graph:]除空白字符外的其他字符
[:space:]任何空白字符,包括空格([\f\n\r\t\v ])

grep

grep [OPTIONS] PATTERN [FILE...]

  • -i 忽略字符大小写的差别
  • -v:显示没有被模式匹配到的行
  • -o:只显示被模式匹配到的字符串
  • -E:使用扩展正则表达式 egrep
  • -A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
  • -B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
  • -C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。

正则

元字符

相关推荐