正则表达式

正则表达式是一种以一些字符赋予特殊意义之后,用来表达字符串,用以筛选各种形式的字符串用来进行查找、替换、删除等各种文本编辑作用的一种表示方式。

正则表达式的特殊字符

字符表示

.   可以表示任意可打印字符

[] 中括号范围内任意单个字符

[^] 中括号范围外任意单个字符 (相对所有可打印字符)

[:space:] 表示任意单个空白字符

[:digit:] 任意单个数字

[:lower:] 任意单个小写字母

[:upper:] 任意单个大写字母

[:alnum:] 任意单个字母或数字

[:alpha:] 任意单个字母

[:punct:] 任意单个标点符号

[:cntrl:] 任意单个控制字符

[:graph:] 任意单个图形字符

[:xdigit:] 任意单个十六进制字符

字符次数

* 表示一个字符重复任意次

+ 表示一个字符重复一次以上

? 表示一个字符重复一次或零次
{n} 表示重复n

{n,m} 表示重复最少n次,最多m

{,m} 表示重复最多m

{n,} 表示重复最少n

位置锚定                

^ 确定位置为行首

$ 确定位置为行尾

\< 确定单词首

\> 确定单词尾

分组与引用   分组每一个配对的括号之间的内容就是一个分组,每一个分组就是一个整体,整体可以用最左变数第n个左括号,用\n 后项引用。

(a+(b))  \1=a+(b)

\2=b

如:显示passwd文件中用户名与shell名相同的行。

正则表达式 

这个是个典型的后项引用,\1 就是引用的括号里面的内容。这才能达成用户名与shell相同的需求。

正则表达式 

 

引用模式,只能用正向思维构建,不能用反向思维构建。

就比如

 

用正则表达式取出一个文件的路径 /etc/rc.d/inint.d/functions/

我想的有两种思路,

一种直接取路径,第二种就是先取出基名然后再取反取出路径。

第一种就是

正则表达式 

思路就是^锁定词首,./*表示之后不管路径多长之后总是/为终点,\<表示锁定词首,就是说后面还有一个单词。

第二种就是

正则表达式 

思路就是先是括号内的是一个整体,作用是取出基名,然后在外面加上[^]达到取反,从而取出路径,但是没有结果。

原因是[^]取反的是指定范围外的单个字符,然而括号括起来的是一个整体,不是一个字符,所以就会出现语法错误,同时也知道了中括号中不能套小括号。

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

(0)
何必呢何必呢
上一篇 2017-08-02 11:01
下一篇 2017-08-03 19:30

相关推荐

  • 马哥教育网络班N22期+第8周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥:是连接两个局域网的基于MAC地址数据存储转发设备,工作于数据链路层集线器:所有端口处于同一个广播域和冲突域中,带宽共享,工作于物理层二层交换机:多端口网桥,一个端口一个冲突域,默认所有端口位于同一个广播域中,可以划分vlan,隔离广播域,带宽独享三层交换机:具有路由功能的二…

    Linux干货 2016-10-19
  • N25期—第五周作业

    1、 显示当前系统上root、fedora或user1用户的默认shell; grep -E "^(root|fedora|user1):" /etc/passwd | cut -d: -f7 2、找出/etc/rc.d/init.d/functions文件中某单词后面…

    Linux干货 2017-01-02
  • 磁盘配额、Raid及逻辑卷LVS

    磁盘配额、Raid及逻辑卷LVS 磁盘配额 Linux是多用户的操作系统,同一时间可能有多个用户登录到系统上进行操作,某些用户可能会写入很多数据,占用大量磁盘空间,导致其他用户没有磁盘空间可用。如何限定某个用户对磁盘的使用空间大小,以及可使用的inode多少,也就是限定可创建多少个文件,这就是磁盘配额管理的作用。 磁盘配额特点 在内核中执行; 以文件系统为单…

    Linux干货 2016-09-19
  • Linux基础之文件查找压缩

    为何学习本章节,可以设想一下,在未来工作中面对大量用户时,想要找到同一类型属性的用户文件时,需要一个工具可以快速准确的定位到所寻找的文件,那就是locate和find。   ******************************************************* 重点:     1.德摩根定律     非(P且Q) = (非P…

    2016-08-22
  • 系统启动流程相关概念

    前言: 了解系统内核基本知识 内核功能:进程管理、内存管理、网络协议栈、文件系统、驱动程序、安全功能等  用户空间:应用程序其中有进程或者线程 运行中的系统可分为两层:内核空间、用户空间  内核设计流派:  单内核设计:把每种功能集成于一个程序中;例如:linux 微内核设计:每种功能使用一个单独的子系统实现;例如:Window…

    Linux干货 2016-09-19
  • 第六周 网络进程管理

    1、简述osi七层模型和TCP/IP五层模型 2、简述iproute家族命令 3、详细说明进程管理工具htop、vmstat等相关命令,并举例 4、使用until和while分别实现192.168.0.0/24 网段内,地址是否能够ping通,弱ping通则输出”success!”,若ping不通则输出”fail!&#82…

    2018-01-12