正则表达式

 

文本处理三剑客

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

相关推荐

  • 搭建完整dns服务(超详细)

    基本框架结构图 域名不一定是magedu.com  可以自定义 准备8台虚拟机 虚拟机地址: 192.168.162.101 作为客户端 192.168.162.102 作为websrv1 端 192.168.162.103 作为websrv2端 192.168.162.104 作为主dns端 192.168.162.105 作为从dns端 192.168.…

    Linux笔记 2018-06-02
  • Linux文件管理

    文件系统与目录结构图: 文件系统结构: /boot:引导文件存放目录 /bin:供所有用户使用的基本命令 /sbin:供管理员使用的基本命令 /lib:系统内核目录 /lib64:辅助共享库存放位置 /etc:配置文件目录 /home/username:普通用户的家目录 /root:管理员的家目录 /media:挂载点 /dev:设备文件及特殊文件储存位置 …

    2018-03-30
  • 创建配置格式文件的格式 C语言源代码安装三步骤 yum

    创建配置文件的格式: [base] name= centos cdrom mirrorlist=file:///root/baselist gpgkey=file:///mnt/cdrom/rpm-gpg-key-centos-7     [epel] name=epel baseurl=https://mirrors aliyun.co…

    Linux笔记 2018-04-22
  • Linux 入门基础知识

    Linux第一周作业(计算机组件及功能,Linux发行版本,Linux系统文件目录及基础命令)

    Linux笔记 2018-05-12
  • Linux学习笔记——权限管理

    Linux学习笔记——权限管理 前言: Linux下的权限管理与日常使用的windows有众多与众不同之处。这些特性使得Linux在实际生产作业中更加安全与高效,发挥着各种灵活的作用。本文简要写下笔者对Linux权限管理的理解,供参考与复习,欢迎指正。 回顾: 确认文件的权限与所有者: 使用ll(即ls -l) 命令可查看这个文件的详细信息。 $ ll da…

    2018-04-07
  • Linux用户管理和组管理

    Linux用户管理和组管理

    2018-04-09