1. 正则表达式

1.1 正则表达式使用

  正则表达式是开发者为了处理大量的字符串和文本而定义的一套规则和方法,使用正则表达式可以提高效率,快速获取想要的内容.

  正则表达式常用于linux三剑客grep,sed,awk,用来处理文本数据,也适用于普通命令.

  三剑客中使用正则表达式处理文本时,是以行为单位的.

1.2 基本的正则表达式及扩展的正则表达式

  正则表达式及扩展的正则表达式及其含义,如下表:

######字符匹配(仅仅匹配单个字符)
. 匹配任意单个字符(通配符的 ? 代表单个字符)
[abc] 匹配集合内任意单个字符
[^abc] 匹配集合外的任意单个字符(非,正则表达式不支持!,!会被当做一个字符)
.* 匹配任意长度的任意字符,即匹配所有内容
######匹配次数(仅仅是次数,不是表示字符)
*t

匹配t前一个字符任意次(连续出现多少次的意思,前面的字符可以没有,

匹配0次,即空,则匹配了所有内容)

\?t 匹配t前一个字符0次或1次(至多1次,前面的字符可有可无),反斜线是转义
\+t 匹配t前面的字符至少1次(1次或多次),反斜线是转义
a\{m\}t 匹配t前一个字符a,m次(具体的次数),反斜线是转义
a\{m,n\}t 匹配t前一个字符a至少m次,至多n次,反斜线是转义
a\{0,n\}t 匹配t前一个字符a至多n次,可以没有,0可以省略不写,反斜线是转义
a\{1,n\}t 匹配t前一个字符a至少1次,至多n次,反斜线是转义
a\{m,\}t 匹配t前一个字符a至少m次,多则不限制,反斜线是转义
######位置锚定
^ 行首锚定
$ 行尾锚定
^PATTERN$ 模式匹配整行(具体的字符串匹配整行)
^$ 匹配 空行
[[:space:]]*$ 匹配多个以空白结尾(空白可以没有)的行
\< 或 \b 词首锚定(单词模式的左侧,单词可以是字符串或者数字,不能是特殊符号)
\> 或 \b 词尾锚定(单词模式的右侧,单词可以是字符串或者数字,不能是特殊符号)
\<PATTERN>\ 匹配整个单词
######分组及引用
\(\)

将一个或者多个字符捆绑在一起,当做一个整体来处理,如\(xy\)*匹配前面

的xy任意次

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

1.3 重复1.2

###基本的正则表达式:
^ #<===用法 ^keyword,匹配以keyword开头的行
$ #<===用法 keyword$,匹配以keyword结尾的行
^$ #<===匹配空行
. #<===表示任意单个字符
\ #<===转义字符,还原字符原本的意思
* #<===匹配前一个字符0次或多次(前一个字符0次时,匹配所有内容)
.* #<===匹配所有内容
^.* #<===匹配以任意多个字符开头的内容
.*$ #<===匹配以任意多个字符结尾的内容
[abc] #<===匹配集合内任意单个字符
[^abc] #<===匹配集合外的任意单个字符
###扩展的正则表达式(使用egrep无需加\转义):
\+ #<===匹配前一个字符1次或1次以上(至少1次)
\[:/\]+ #<===匹配[]内:/(或其他特殊符号)的字符1次或1次以上(至少1次)
\? #<===匹配前一个字符0次或1次
| #<===同时过滤多个字符串,使用到的分隔符(在通配符中表示管道)
\(\) #<===括号中的内容被当做一个整体,可以被后面的 \n 引用(n为数字)
\n #<===引用 () 中的内容(n为数字)
a\{m,n\} #<===匹配前一个子符a至少m次,至多n次
a\{n,\} #<===匹配前一个字符a至少n次,多则不限
a\{n\} #<===匹配前一个字符n次
a\{,m\} #<===匹配前一个字符至多m次,可以没有

 

linux中的正则表达式知识梳理的更多相关文章

  1. Linux运维基础入门(四):Linux中的网络知识04

    一,虚拟机的安装 略 二,Linux系统下的网络配置(Linux虚拟机的网络设定为桥接模式) 桥接模式:虚拟机同主机一样,在网络中相当于一个真实存在的装有Linux系统的电脑.(我们先用这个模式) N ...

  2. linux中的调试知识---基础gdb和strace查看系统调用信息,top性能分析,ps进程查看,内存分析工具

    1 调试一般分为两种,可以通过在程序中插入打印语句.有点能够显示程序的动态过程,比较容易的检查出源程序中的有关信息.缺点就是效率比较低了,而且需要输入大量无关的数据. 2 借助相关的调试工具. 3 有 ...

  3. Linux中的正则表达式

    *               前一个字符匹配0次或任意次.               匹配除了换行符外任意一个字符^              匹配行首$              匹配行尾[] ...

  4. linux中inode、软链接、硬链接

    1 软链接 linux中软链接理解成window中的快捷方式.创建软链接的命令 ln -s 源文文件或目录 目标文件或目录 2 硬链接 创建硬链接的命令如下 ln  源文文件或目录 目标文件或目录 3 ...

  5. linux系统下的权限知识梳理

    下面对linux系统下的有关权限操作命令进行了梳理总结,并配合简单实例进行说明.linux中除了常见的读(r).写(w).执行(x)权限以外,还有其他的一些特殊或隐藏权限,熟练掌握这些权限知识的使用, ...

  6. Linux基础知识梳理

    Linux基础知识梳理 Linux内核最初只是由芬兰人林纳斯?托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的.Linux是一套免费使用和自由传播的类Unix操作系统,是 ...

  7. Linux实战教学笔记19:Linux相关网络知识梳理

    第十九节 Linux相关网络知识梳理 标签(空格分隔): Linux实战教学笔记-陈思齐 一,前言 一个运维有时也要和网络打交道,所以具备最基本的网络知识,对一个运维人员来说是必要的.但,对于我们的工 ...

  8. linux中的通配符与正则表达式

    在linux中,有通配符及正则表达式,那么什么是通配符和正则表达式,什么时候用?   通配符 它是由shell解析,并且一般用于匹配文件名,实际上就是shell解释器去解析的特殊符号,linux系统通 ...

  9. My way on Linux - 知识梳理计划

    知识梳理计划图 近期计划把自己学习的工作中用到的Linux知识梳理下,敬请期待.

随机推荐

  1. excel 转换成pdf 总结

    excl 转换成pdf 1.freespire   只能转换前三页 // 使用此组件 只能转换前3页 //需要引用 如下命名空间 //using Spire.Doc; //Document doc = ...

  2. java 数组2

    一.创建异常 1.空指针异常 2.超出索引范围 二.遍历 for循环 三.求数组中的最大值 package cn.wt.day05.demon02; public class DemonArray03 ...

  3. 【java面试】算法篇

    1.冒泡排序 /** * 冒泡排序 * 比较相邻的元素.如果第一个比第二个大,就交换他们两个. * 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. ...

  4. emeditor安装及插件信息

    原文地址:https://www.52pojie.cn/thread-658917-1-1.html 废话不多说 官网:https://www.emeditor.com/download/ 安装版:6 ...

  5. Git The requested URL returned error:403

    一.问题描述 hexo部署的仓库需要换到另一个账号上,于是按照之前创建的步骤,修改了hexo安装目录下的deploy的repo地址,然而hexo s和hexo g没出错,但是hexo d时,会出错. ...

  6. Educational Codeforces Round 81 (Rated for Div. 2) B. Infinite Prefixes

    题目链接:http://codeforces.com/contest/1295/problem/B 题目:给定由0,1组成的字符串s,长度为n,定义t = sssssss.....一个无限长的字符串. ...

  7. HDS协议介绍

    一.什么是HTTP Dynamic Streaming 使用传统的HTTP协议进行在线播放叫做“渐进下载”,所有的视频内容从头到尾必须从服务器传输到客户端,用户只能在传输完的视频长度中选择播放点,而不 ...

  8. java泛型梳理

    java泛型梳理 概述 泛型,即参数化类型,是在JDK1.5之后才开始引入的. 所谓参数化类型是指所操作的数据类型在定义时被定义为一个参数,然后在使用时传入具体的类型. 这种参数类型可以用在类,接口, ...

  9. linux--->阿里云centos6.9安装yii2报错

    阿里云centos6.9安装yii2报错 错误显示:Warning: require(/vendor/autoload.php): failed to open stream: No such fil ...

  10. 基于Flask框架搭建视频网站的学习日志(三)之原始web表单

    基于Flask框架搭建视频网站的学习日志(三)1.原始Web 表单 本节主要用于体验一下前端后端直接数据的交互,样例不是太完善,下一节会加入Flash处理,稍微完善一下页面 (备注:建议先阅读廖雪峰老 ...