十二、shell编程-正则表达式(2)


1.扩展正则表达式元字符

  +  匹配1-n个前导字符  *是0-n个

  \t  tab的意思

  ?  匹配0~1个前导字符  .是1个任意字符

  a|b  匹配a或b

  ()  组字符

示例1

  /^love/  以love为行首开头

  /love$/  以love为行尾结尾

  /l.ve/  l和ve之间至少一个任意字符的

  /lo*ve/  l和ve之间0-n个o的

  /[lL]ove/  Love或者love的

  /love[a-z]/  love最后一个小写字母

  /love[^a-Z0-9]/  love后最后一个(不是字母或数字)的字符

示例2

  /.*/  所有行

  /^$/  只有行首和行尾,即空行

  /^[A-Z]..$/  大写字母开头的三个字符

  /^[A-Z][a-z]*3[0-5]/  大写字母开头,0-n个小写字母,3后接一个0-5的数字

  /[a-z]*\./  0-n个小写字母后面接个.

  /^ *[A-Z][a-z][a-z]$/  0-n个空格开头,接1个大写字母接2个小写字母然后结尾

  /^[A-Za-z]*[^,][A-Za-z]*$/  0-n个大小写字母开头,中间没,的,以0-n个大小写字母结尾的

  /\

  //  找以f为词首,th为词尾的词

  /5{2}2{3}\./  5重复2次,接2重复3次,接.的

  /^[ \t]*$/  0-n个空格或者tab

  /^#/  以#开头的

  /^[ \t]*#/  0-n个空格或者tab开头,接#的

  :1,$ s/\([Oo]ccur\)ence/\1rence/  1到末行 替换 Occurence 为 Occurrence , 替换 occurence 为 occurrence

  :1.$ s/\(square\)and\(fair\)/\2and\1/  1到末行 替换 squareandfair 为 fairandsquare