正则表达式
正则表达式主要是用在对文件内容的匹配上,通配符主要用在对文件名的匹配上
“.”:用于匹配除换行符之外的任意一个字符,如:r.t匹配rot,rut,但是不能匹配root,需要使用r…t,r…t可以使用r t(中间是空格),grep ‘r…t’ pa.log
"":用于匹配前一个字符0次或者任意多次,如:ab,可以匹配a,ab,abb等,“”经常和“.”在一起使用,比如“.”代表任意长度的不包含换行的字符。grep ‘r.*t’ a.log
{n}:匹配前面的字符n次,grep ‘ro{2}t’ a.log,匹配包含root的行
{n,}:匹配前面的字符n次及以上,grep ‘ro{0,}t’ a.log
{n,m}:匹配前面的字符n到m次
“^”:匹配开头的字符,grep ’^root’ a.log
"KaTeX parse error: Expected group after '^' at position 11: ":用于匹配尾部,“^̲”代表该行为空,grep ‘^r.*h$’ a.log用于匹配以r开头,中间任意字符,以h结尾的行。
“[]”:代表方括号内出现的任一字符,方括号中加入“”代表取反,匹配手机号:'1[38][0-9]{9}’
“<”:代表单词的左边界,‘<hello’,代表以hello开头
“>”:代表单词的右边界,‘hello>’,代表以hello结尾
“<>”:精确匹配,’<hello>’,echo “hello” | grep ‘<hello>’
“\d”:匹配一个数字,等价[0-9],echo 123 | grep [0-9],echo 123 | grep -P ‘\d’
“\w”:匹配字母,数字,下划线,等价于[A-Za-z0-9]
“\W”:匹配非字母,非数字,非下划线,等价于[^A-Za-z0-9]
“?”:匹配前一个字符0次或者1次,‘ro?t’ 匹配rt,rot
“+”:匹配前一个字符1次及以上,'ro+t’匹配rot,root
“|”:或的意思
区号是3位的固定电话的正则表达式
^0[0-9]{2}-[0-9]{8}
区号是4位的固定电话的正则表达式
^0[0-9]{3}-[0-9]{8}
两种区号的固定电话号码可以如下写
^0[0-9]{2,3}-[0-9]{8}
使用 | 符号也可以
^0[0-9]{2}-[0-9]{8} | ^0[0-9]{3}-[0-9]{8}
“()”:通常需要和“|”联合使用,用于枚举一系列可以替换的字符,如固定电话区号和电话之间可能是 - ,或者是一个空格,可以用表达式:^0[0-9]{2,3}(-| )[0-9]{8},也可以用[]来匹配:^0[0-9]{2,3}[\ -][0-9]{8}
匹配hard,hold,hood,表达式:h(ar|oo|ol)d
通配符:
“*”:代表0个或者多个字符 ls -l *.doc
“?”:代表任意一个字符 ls -l A?.doc 代表以A开头,只有两个字母的文件名,以.doc结尾的文件
“{}”:可拥有匹配所有括号内包含的以逗号隔开的字符,ls -l {A,B,C}.doc,ls -l [A-C].doc
“”和“!”:[A]或者[!A]代表不是A