正则表达式

 

文本处理三剑客

grep:文本过滤

grep,egrep(支持扩展正则表达式),fgrep(不支持正则表达式)

grep  需要查找的字符串 查找的目标文件

-v #取反

-i #忽略大小写

-n #显示目标字符串的行号

-c #显示匹配到的次数

-p #静默模式

-o #仅显示匹配到的字符串

-A# #显示包含关键字的后续几行

-B# #显示包含关键字的前几行

-C# #显示包含关键字的前后几行

-e #实现多个选项间的逻辑or关系(或)

-w #匹配整个单词

-E #匹配扩展正则表达式,等价于egrep

-F #不支持正则表达式,等价于fgrep

nmap -v -sP 172.20.0.0/16 #查看该网段中开机的机器有几个

正则表达式:

REGEXP:由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)

不表示字符字面意义,而表示控制或通配的功能

基本正则表达式:BRE

扩展正则表达式:ERE

程序支持:grep、sed、awk、vim、less、nginx等

元字符分类:

字符匹配

. 匹配任意单个字符

[] 匹配指定范围内的任意单个字符

[^] 匹配指定范围外的任意单个字符

[:alnum:] 字母和数字

[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z

[:lower:] 小写字母 [:upper:] 大写字母

[:blank:] 空白字符(空格和制表符)

[:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广)

[:cntrl:] 不可打印的控制字符(退格、删除、警铃…)

[:digit:] 十进制数字 [:xdigit:]十六进制数字

[:graph:] 可打印的非空白字符

[:print:] 可打印字符

[:punct:] 标点符号

匹配次数

*:匹配前面的字符任意次数;贪婪模式

例:grep “x*y”

.*:任意长度的任意字符;

\?:匹配其前面的字符0或1次;即前面的可有可无

\+:匹配其前面的字符至少1次;

\{m\}:匹配前面的字符m次;

\{m,n\};匹配前面的字符至少m次,至多n次;

\{0,n\}:匹配前面的字符至多n次;

\{m,\}:匹配前面的字符至少m次;

写正则表达式最好用引号引起来

位置锚定

^:行首锚定:用于模式的最左侧;

$:行尾锚定:用于模式的最右行;

^PATTERN$:用于模式整行;

^$:空行;

\<或\b:词首锚定:用于单词模式的左侧;

\>或\b:词尾锚定:用于单词模式的右侧;

\<PATTERN\>:匹配整个单词;

分组

\(\);将一个或多个字符捆绑在一起当做一个整体进行处理;

例: \(xy\)*ab

Note: 分组括号中的模式匹配到的内容会被正则表达式引擎记录与内部的变量中,这些变量的命名方式为:\1,\2,\3…

\1: 从左侧起,第一个左括号以及与之匹配右括号之间的模式所匹配到的字符;

\(ab\+\(xy\)*\):

\1:ab\+\(xy\)*

\2;xy

后向引用:引用前面的分组括号中的模式所匹配字符,(而非模式本身)

图片1图片2

egrep及扩展的正则表达式

egrep = grep -E #匹配扩展正则的元字符

字符匹配:

.任意单个字符

[]指定范围的字符

[^]不在指定范围的字符

扩展正则表达式

次数匹配:

*:匹配前面字符任意次

?: 0或1次

+:1次或多次

{m}:匹配m次

{m,n}:至少m,至多n次

位置锚定:

^ :行首

$ :行尾

\<, \b :语首

\>, \b :语尾

分组:

()

后向引用:\1, \2, …

或者:

a|b: a或b

C|cat: C或cat

(C|c)at:Cat或cat

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95056

(0)
老司机丨快上车老司机丨快上车
上一篇 2018-04-06 20:23
下一篇 2018-04-06 20:44

相关推荐

  • centos6.9启动之grub

    本文主要介绍系统启动中grub部分

    2018-05-13
  • Linux用户与组管理详解

    在linux系统上,用户管理是基于用户名和密码的方式进行资源的分配,了解和掌握用户与组的管理是从事运维工作所必须具备的能力,也是将来从事运维行业的重要工作之一。

    2018-04-03
  • 脚本相关

    变量 echo $name 与 echo “$name” 假如变量是读取文件,前者会自动缩进成一行,后者保留原有格式 (umask=022,mkdir /f1)括号相当于开启一个临时子进程,能读取当前shall的变量等信息,但是进程号不变,命令结束后恢复刚才状态 局部变量,环境变量,只读变量(常量),位置变量,数组 局部变量:只在当前…

    2018-05-14
  • Linux用户管理

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 who | cut -d ‘ ‘ -f1 | sort -u 2、取出最后登录到当前系统的用户的相关信息。 who | tail -1 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 cut -d: -f7 /etc/pa…

    Linux笔记 2018-07-22
  • Docker容器一

    容器的安装,镜像的管理,镜像的制作

    2018-07-31
  • Linux入门知识

    #Linux基础入门 用户登录 终端(terminal) 什么是shell? bash shell是什么? 命令提示符 shell内部可执行程序有两类 Hash 缓存表 alias 命令的别名 命令格式 linux常用命令 bash 的快捷键 用户登录 root 用户 一个特殊的管理帐户 也被称为超级用户 root 已接近完整的系统控制 对系统损害几乎有无限…

    Linux笔记 2018-05-07