linux中的正则表达式总结

概念

Regular Expression,通常用来检索、替换那些符合某个模式(规则)的文本。

基本正则

常用匹配模式

  • ^: 匹配行首
  • $ :匹配行尾
  • ^$:匹配空行
  • < 或者 \b:匹配词首,其后面的任意字符必须是单词词首才匹配
  • > 或者\b:匹配词尾,其前面的任意字符必须是单词词尾才匹配
  • \B:匹配非单词边界,与\b相反
  • [ ] : 匹配范围内的任意单个字符,例:[0-9] 匹配任意单个数字,[a-zA-Z] 匹配任意单个字母
  • [^ ]:匹配非范围内的任意单个字符,例:[^0-9]匹配任意单个非数字
  • [[:alpha:]]:匹配任意字符,等价[a-zA-Z]
  • [[:lower:]]:匹配任意单个小写字母,等价[a-z]
  • [[:upper:]]:匹配任意单个大写字母,等价[A-Z]
  • [[:digit:]] : 匹配任意单个数字,等价[0-9] 或perl模式正则 -P \d
  • \s: perl模式,匹配任意单个空白字符
  • \S:perl模式,匹配任意当非空白字符

连续匹配

  • *:前面的字符出现任意次数,包括0次
  • .:表示任意单个字符
  • .*:表示任意长度的任意字符
  • \?:前面的字符匹配0次或者1次
  • \+:前面的字符匹配至少1次
    -\ {n,m\}:前面的字符匹配次数为n~m次

分组和后向引用

  • \( \):表示分组,可以嵌套使用
  • \(abc\):表示将abc当成一个整体使用,\(abc\)\{2\} 匹配abcabc
  • \1 表示分组1匹配到的结果,awk '\(abc\)\{2\} 11 \1' 匹配 abcabc 11 abcabc

扩展正则

  • 基础正则中 \( \),\{ \},\?,\+,去掉反斜杠后,即为扩展正则的使用方法

你可能感兴趣的:(linux中的正则表达式总结)