linux运维基础之跟我一起学正则表达式(一)
正则表达式
### 二,
1) 什么是正则表达式
正则表达式又称为规则表达式
正则表达式是一个计算机的一个概念
正则表达式为了处理大量的文本|字符串而定义的一套规则和方法,通常被用来检索,替换那些符合摸个模式规则的文本
2)为何使用正则表达式
linux运维工作,大量操作命令,化繁为简。
正则表达式高级工具:支持三剑客 ---慢慢来后面讲
### 三,
正则表达式从入门到入狱,从删库到跑路
********************************************************************************************************
dos 通配符:
*:任意的字符串
(你要寻找摸个目录下的txt文件,泥就可以输入*.txt,表示目录下所有带.txt的文件)
?: 代替任意单个字符
(你可能输入单词会突然有一个字母记不住或者多个,你就可以he??o,这样就能搜索到很多hello,heqwo,heoko等等只要那两个字母不同就能匹配)
正则表达式-->
\b 代表着单词的开头和结尾-->搜索单词的时候在单词的开头结尾输入\b
eg:你要精确搜索hello --> \bhello\b
| * | 重复零次或更多次 |
| + | 重复一次或更多次 |
| ? | 重复零次或一次 |
| {n} | 重复n次 |
| {n,} | 重复n次或更多次 |
| {n,m} | 重复n到m次 |
***********************************************************************************************************
(1)连续次数的匹配

模拟环境内容
什么叫连续匹配次数呢?就是匹配单个次数内容多个

要匹配两个字符的时候用grep搜索,但是如果要匹配10个呢??100个??你会一直输入100个字符吗??那肯定行不通的。所以我们就引进一个{n}需要匹配的次数。

斜杆是转义字符:你想匹配多少个b就写多大就行啦。
这个匹配会吧含有更多的内容输出如果你只想匹配当前个数的话可以用<>

但是突然你想要匹配3到5个b的内容呢??哎呀真会出题。
不知道聪明的人有没有想到{n,m}意思就是至少n,至多m。

所以引申出来了{,m}表示至多m,至少0
我们再来认识下*
表示匹配前一个字符任意次数

任意次的话也包括零次,只要是a或者ab就会被匹配

天天匹配这么多肯定没意思啊
我们来认识下\? \+
\? 表示匹配其前面字符0次或者一次,就是要么没有要么一次

\+ 表示匹配前面的字符至少一次,也就是必须有一个字符

但是必须有一个呢,他也可以有多个。上不封顶呢。
. 表示匹配任意的单个字符

图中已显示了a后面匹配了三个字符及以上的内容,不明白的话滴滴我
这里可以看出匹配的字符里面还有数字,你可能用到的是子需要匹配字母在正则表达式上字母表达为[[:alpha:]]

所以这样就会帮你匹配到纯字母的内容
如果你还觉得这个不苛刻的话不妨还要来个匹配的是小写字母:[[:lower:]]

为了编译环境零时添加的,你可以尝试上一个命令,看匹配的内容
然后加入需要匹配大写字母的话: [[:upper:]]

好了剩余内容就大家自己测试啦:
[[:alpha:]] 表示任意大小的字母
[[:lower:]] 表示小写字母
[[:upper:]] 表示任意大写字母
[[:digit:]] 表示0到9之间的任意数字
[[:alnum:]] 表示任意数字和字母
[[:space:]] 表示任意空白字符包括空格 tab键
[[:punct:]] 表示任意标点符号





最后一个仅匹配A-Z以内的大写字母
所以引申出 [ ] 里面 匹配指定范围内的任意字符 ,但一般都是匹配一个字符

[^ ] 大家来看下这个呢??你是不是会觉得什么锚钉头部??
不是的啦,,这个表示指定范围外的单个字符,,与 [ ] 相反

这个东西与上面所得[^[:lower:]] 这样也可以用 都能用

\d 也是表示数字的哦,,单个数字不行测试下唉
这个字符总结在最上面啦,,,,,,不愿意翻??我给你cp了啊
| . | 匹配除换行符以外的任意字符 |
| \w | 匹配字母或数字或下划线或汉字 |
| \s | 匹配任意的空白符 |
| \d | 匹配数字 |
| \b | 匹配单词的开始或结束 |
| ^ | 匹配字符串的开始 |
| $ |
匹配字符串的结 |
| \D | 表示任意单个非数字字符 |
| \t | 表示匹配单个横向字符就是相当于tab键 |
| \S | 表示匹配非空白字符 |
linux运维基础之跟我一起学正则表达式(一)的更多相关文章
- 第一阶段·Linux运维基础 第3章·文件属性、正则表达式、文件权限
01-文件属性内容介绍 02- inodeyublock讲解 03-访问oldboyfile的寻宝过程 04-inode与block小结 05-磁盘空间不足案例详解 06-Linux文件类型及拓展名 ...
- 第一阶段·Linux运维基础-第1章·Linux基础及入门介绍
01-课程介绍-学习流程 02-服务器硬件-详解 03-服务器核心硬件-服务器型号-电源-CPU 01-课程介绍-学习流程 1.1. 光看不练,等于白干: 1.2 不看光练,思想怠慢: 1.3 即看又 ...
- linux运维基础知识
linux运维基础知识大全 一,序言 每一个微不足道的知识,也是未来的铺垫.每一份工作的薪资职位,也是曾经努力的结果. 二,服务器 1,运维人员工作职责: 1)保证数据不丢失:2)保证服务器24小时运 ...
- Linux运维基础采集项
1. Linux运维基础采集项 做运维,不怕出问题,怕的是出了问题,抓不到现场,两眼摸黑.所以,依靠强大的监控系统,收集尽可能多的指标,意义重大.但哪些指标才是有意义的呢,本着从实践中来的思想,各位工 ...
- 网络工程师和Linux运维工程师有什么区别?学哪个比较好?
网络工程师和Linux运维工程师有什么区别?学哪个比较好? 机缘巧合下,我进入了一家从事vpn与系统集成的公司,很感谢公司能留下我这个非网络工程专业的毕业生,从对网络一窍不通,慢慢可以自己独立完成工作 ...
- linux运维基础__争取十月前研究的差不多
转来的一编,考虑在十月前研究的差不多 linux运维人员基础 1.很多地方经常会用到的rsync工具 实施几台服务器的同步效果 我们公司就是使用这个工具完成服务器的游戏的服务端和客户端同步,有几个文章 ...
- 网络配置——Linux运维基础
今天把Linux的网络配置总结了一下,尽管并不难可是是个比較重要的基础.然后我也不知到自己以后是否会做运维,可是我知道自己比較喜欢刨根问底.还有就是我很珍惜我以前掌握过的这些运维的技能.今天突然间问自 ...
- Linux运维基础
一.服务器硬件 二.Linux的发展史 三.Linux的系统安装和配置 四.Xshell的安装和优化 五.远程连接排错 六.Linux命令初识 七.Linux系统初识与优化 八.Linux目录结构 九 ...
- [转帖] Linux运维基础知识学习内容
原作者地址:https://www.cnblogs.com/chenshoubiao/p/4793487.html 最近在学习 linux 对简单的命令有所掌握 但是 复杂的脚本 shell pyt ...
随机推荐
- HDU 6034 Balala Power! (贪心+坑题)
题意:给定一个 n 个字符串,然后问你怎么给 a-z赋值0-25,使得给定的字符串看成26进制得到的和最大,并且不能出现前导0. 析:一个很恶心的题目,细节有点多,首先是思路,给定个字符一个权值,然后 ...
- easyui datagrid deleteRow(删除行)的BUG
有时候想临时保存一些数据,等确定好后在批量一次提交,但EasyUI datagrid 用的时候添加可以正常,如果从中间删除那行号就全乱了.导致删除的时候有可能删除上一行数据. function ad ...
- Java简单实现AOP,Java通用异常拦截,Java与Lamada
直接看代码不废话.不懂Lamada直接百度... package test; /** * QQ:1448376744 * @author 花间岛 * */ //控制器 public class Con ...
- 【C#】 ref out
ref 通常我们向方法中传递的是值,方法获得的是这些值的一个拷贝,然后使用这些拷贝,当方法运行完毕后,这些拷贝将被丢弃,而原来的值不会受到影响. 这种情况是通常的,当然还有另外一种情况,我们向方法传递 ...
- could not read data from '/Users/lelight/Desktop/ViewControllerLife/ViewControllerLife/Info.plist': The file “Info.plist” couldn’t be opened because there is no such file.
1.Info.plist放置至新文件夹下,路径被修改了,报错. could not read data from '/Users/lelight/Desktop/ViewControllerLife/ ...
- C语言条件编译(#if,#ifdef,#ifndef,#endif,#else,#elif)
1.条件编译介绍 条件编译(conditional compiling)命令指定预处理器依据特定的条件来判断保留或删除某段源代码.例如,可以使用条件编译让源代码适用于不同的目标系统,而不需要管理该源代 ...
- 【python】使用python smtplib库发邮件添加cc,bcc
#!/usr/bin/env python# -*- coding: utf-8 -*- '''@author@mail @date 2017/03/16 发送邮件'''import smtplibf ...
- Java面向对象之USB接口实例
一.需求: 1.在电脑上设置一个USB接口. 2.电脑运行时,将鼠标连接到接口上,鼠标可以使用自己的功能. 3.电脑运行时,将键盘连接到接口上,键盘可以使用自己的功能.(使用接口的作用:减低鼠标.键盘 ...
- hexo的jacman主题配置
获得更多资料欢迎进入我的网站或者 csdn或者博客园 这是在我搭建博客时用的主题,这个主题时基于pacman修改的,同时我也是借助于wuchong同时他还在一直更新.一下时我的一些基本配置: 相关文章 ...
- postgresql数据库异步流复制hot standby环境搭建
生命不息,test不止. 最近组里面修改了几个postgresql的bug,要进行回归测试,除了前面提到的WAL的RT测试和Mirroring Controller的RT测试,还要测试下postgre ...