正则表达式基础

一、正则表达式:

元字符是用来阐释字符表达式意义的字符,简言之,就是用来描述字符的字符。

正则表达式RE(Regular Expression)是由一串字符和元字符构成的字符串。

正则表达式的主要功能是文本查询和字符串操作,它可以匹配文本的一个字符或字符集合。实际上正则表达式完成了数据的过滤,将不满足正则表达式定义的数据拒绝掉,剩下与正则表达式匹配的数据。

 

                        基本的正则表达式元字符集合及其意义

符号 意义
* 0个或多个在*字符之前的那个普通字符
. 匹配任意字符
^ 匹配行首,或后面字符的非
$ 匹配行尾
[] 匹配字符集合
\ 转义符,屏蔽一个元字符的特殊意义
\<\> 精确匹配符号
\{n\} 匹配前面字符出现n次  P.43
\{n,\} 匹配前面字符至少出现n次
\{n,m\} 匹配前面字符出现n~m次

1.“*”符号

  zha*ng  :“*”前面的普通字符是a,就表示匹配a字符0次或多次,如:zhng、zhang、zhaaaang

  (根据测试可以不包括前面的字符,即匹配0次

2.匹配空行

  匹配行首的^和匹配行尾的$组合起来“^$”可以用来匹配空行,如果需要匹配只包含一个字符的行,可以用“^.$”

3.”[]”符号

  匹配字符集合,支持穷举方法列出字符集合的所有元素,也支持使用“-”符号表示字符集合范围

  [12345] 等价于 [1-5]

  我们知道“^”符号表示匹配行首,但是,“^”符号放到“[]”符号中就不再表示匹配行首了,而是表示取反符号。

  [^b-d]  :表示不再b~d范围内的字符

  [A-Za-z] [A-Za-z]*  :匹配任意英文单词

二、正则表达式的扩展:

                扩展的正则表达式元字符及其意义

符号 意义
匹配0个或一个在其之前的那个普通字符
+ 匹配一个或多个在其之前的那个普通字符
() 表示一个字符集合或用在expr中
| 表示“或”,匹配一组可选的字符

1.“?”符号

  (根据测试可以不包括前面的字符,即匹配0次

2.”()”符号和“|”符号

  “()”符号和“|”符号通常结合使用,表示一组可选字符的集合。

  re(a|b|c)d  等价于  re[abc]d

  “|”符号也可以表示多个正则表达式的“或”关系。

  grep -E “zha?ng|zhi”  文件

三、通配符:

bash shell本身不支持正则表达式,使用正则表达式的是shell命令和工具,如grep,sed,awk。

bash shell可以使用正则表达式中的一些元字符实现通配(Globbing)功能。

通配是把一个包含通配符的非具体文件名扩展存储在计算机,服务器或者网络上的一批具体文件名的过程。(可以看出通配主要应用匹配文件名上,而正则主要应用于字符串上

最常用的通配符包括正则表达式元字符:?、*、[]、{}、^等。

符号 意义
* 任意位的任意字符
一个任意字符
^ 取反

1.“{}”符号

  表示一组表达式的集合。如:{[a-h]*.awk ,a?.txt}

原创文章,作者:sunhao,如若转载,请注明出处:http://www.178linux.com/77454

(0)
sunhaosunhao
上一篇 2017-06-04 14:11
下一篇 2017-06-04 17:52

相关推荐

  • 2016-10-17作业

    1 生产环境发现一台服务器系统时间产生偏差,造成服务异常,请帮忙校正。 date命令查看系统时间,clock或者hwclock命令查看硬件时间, 将系统时间同步到硬件时间的方法hwclock -s   2 生产有一个数据同步脚本需要执行很长时间,怎样做到无人值守,在管理工具退出的情况下,脚本依然能正常运行。在生产环境的中创建SCREEN会话,会话的…

    Linux干货 2016-10-18
  • 文本处理工具作业

    1、找出ifconfig命令结果中本机的所有IPv4地址 root@cenots6.8  ~ #  ifconfig | tr -cs '[0-9]\.' '\n' |sort -u -t&…

    Linux干货 2016-08-07
  • MySQL/MariaDB DML操作之Select

    前言 上文我们已经讲解了MySQL/MariaDB的基础知识和DDL相关操作,接下来我们来说一下MySQL/MariaDB的DML操作,因select查询较复杂也较重要,所以本文主要是对select查询的详解。 DML操作 DML之select 投影查询 select col_name,[col_name1,…] from …

    Linux干货 2015-05-07
  • 软链接和硬链接详解

    软连接和硬链接图解 硬链接 符号链接 软链接和硬链接详解 软链接和硬链接详解 Linux下的链接文件有点类似于Windows的快捷方式,但又不完全一样。链接文件有两种:一种是硬链接,另一种是符号链接(又称软链接)。 UNIX文件系统提供了一种将不同文件链接至同一个文件的机制,我们称这种机制为链接。它可以使得单个程序对同一文件使用不同的名字。这样的好处是文件系…

    Linux干货 2016-09-06
  • Linux任务计划

    Linux任务计划主要分为分为两种分别是一次性任务计划和周期性任务计划实现工具主要是at和crontab下面将详细介绍任务计划工具的使用。 1、at命令一次性任务计划 at命令是由atd服务提供的其主程序包是atd在CentOS6上可以使用service atd start命令来启动在CentOS7上需要使用systemctl start atd.servi…

    Linux干货 2016-09-11
  • Zabbix介绍、安装配置

    Zabbix介绍、安装配置 我们为什么需要监控? 常用的开源监控系统有哪些? Zabbix架构 Zabbix的安装和配置 总结 前言 本篇文章转自我的个人博客 http://anyisalin.com 欢迎大家访问 我们为什么需要监控? 没有监控就将系统上线, 就是在耍流氓; 在生产环境中, 监控是必不可少的, 因为我们需要实时了解业务的…

    2016-05-13