十二、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个大小写字母结尾的
/\ / /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