Linux——正则表达式2

接着上一节的学习,我们接下来将正则表达式的后半部分将全部学完。

正则表达式字符组合:

字符串,比如: 'root' 、 '1000' 、 'm..c'




字符串的重复与逻辑===>组合表达式


重复

  • *:零次或多次匹配前面的字符或子表达式
  • +:一次或多次匹配前面的字符或子表达式
  • ?:零次或一次匹配前面的字符或子表达式




重复特定次数:{n,m}
  • *:{0,}
  • +:{1,}
  • ?:{0,1}

任意字符串的表示: .*
例如: ^r.*  m.*c
注意与 m..c的区别

逻辑的表示
| :'bin/\(false\|true\)'

正则表达式案例
案例一:匹配4到10位的QQ号
grep '^[0-9]\{4,10\}$' qq.txt

案例二:匹配15位或18位身份证号(支持带X)
grep '[1-9]\([0-9]\{13\}|[0-9]\{16\}\)[0-9xX]' qq.txt
grep '^[1-9]\([0-9]\{13\}|[0-9]\{16\}\)[0-9xX]$' qq.txt

案例三:匹配密码(由数字、26个字母和下划线组成)
grep '^\w\+$' qq.txt

正则表达式的总结: