正则表达式-2019-06-11

  • 正则表达式分为两种基础正则表达式和扩展正则表达式,有可能其相同元字符的意义也不尽相同

  • 基本正则表达式
    . 任意单个字符
    []指定范围内的任意单个字符
    [^]指定范围外的任意单个字符

    • 次数匹配
      *任意次
      \? 0次或者一次
      \{m,n} 至少m次至多n次,若无上限,则n可以不写,若m可以为0,则将m写成0,但不能不写
      .* 任意长度的任意字符
      ^ 锚定行首
      $ 锚定行尾
      < 或 \b 锚定词首
      > 或 \b 锚定词尾
      \1 只应用第一个小括号里面的内容
  • grep (简单正则表达式)
    -i 忽略字符大小写
    -v 反向搜索
    -o 只显示匹配到的字符串
    --color 显示颜色
    -E 使用扩展正则表达式
    -A n: 表示匹配到的当行和下面的n行均显示
    -B n: 表示匹配到的当行和上面的n行均显示
    -C n: 表示匹配到的上面和下面的n行均显示

  • grep ‘^$’ 文件名,找文件中的空白行

  • grep ‘[[:digit:]]$’ 文件名 文件中以数字结尾的行

  • grep ‘[[:space:]][[:digit:]]$’ 文件名 文件中以数字结尾,并前面空白字符

  • grep "root>" 文件名 文件中以root作为词尾的行,非行尾
    grep "root\b" 文件名 文件中以root作为词尾的行,非行尾

  • grep " grep "\broot" 文件名 文件中以root作为词首的行,非行首

  • grep "" 文件名 文件中出现root作为单词出现的行,若文件中有rroot ,就不会被找到
    grep "\broot\b" 文件名 文件中出现root作为单词出现的行,若文件中有rroot ,就不会被找到

  • grep ‘l..e*l..e’ 文件名 寻找文件中类似这种结构 he is like her liker 其中 .代表一个字,*代表中间任意个字

扩展正则表达式
字符匹配:
. 任意单个字符
[] 指定范围内的任意单个字符
[^] 指定范围外的任意单个字符
次数匹配
匹配前面字符任意次
?匹配前面字符0次或者一次
+ 匹配前面字符至少一次
eg :grep -E '^[[:space:]]+' 文件名 指的是文件中文本至少有一个空格开头的行
{m,n} 至少m次至多n次,若无上限,则n可以不写,若m可以为0,则将m写成0,但不能不写
.
任意长度的任意字符

^ 锚定行首
 $ 锚定行尾
 \< 或 \b 锚定词首
 \> 或 \b 锚定词尾
   eg:egrep --color '\b([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b' 文件名 找到文件中1-255之间的数字,作为单个单词出现

分组
() 分组
\1 只应用第一个小括号里面的内容
或者
| 表示or eg:grep -E ‘C|cat’ 文件名 指的文件文本中含有 C或者cat
grep -E '(C|c)at' 文件名 指的文件文本中含有 Cat或者cat
与正则表达式区别
1.存在 + 匹配前面字符至少一次

  1. ?匹配0次或者至少一次
    {m,n} 至少m次至多n次 都不用加 \
  2. 支持 | 为or 的意思

你可能感兴趣的:(正则表达式-2019-06-11)