Linux - 正则表达式
目录
1. 正则表达式(regular expression)
regular 常规,规则的
expression 表达式,公式
什么是正则?
使用一些特殊字符+字母和或数字按照某个规则组合成一 个公式用来表示某个意思这就叫正则表达式
为什么需要使用它?
查找的场景特别适合使用正则,大海捞针
正则用在哪里?
正则表达式是一种方法,很多命令可以采用这种方法
vim ,grep,sed,awk等都支持正则表达式
######################################################
1.1 元字符
元字符:有特殊含义的字符,可以表示其他的含义
1.1.1 ^ 表示以什么开头
[root@localhost 7.1]# cat sc.html | egrep "^<h1"
<h1>Welcome to sanchuang!</h1>
<h1>三创同乐欢迎您!</h1>
######################################################
1.1.2 $ 表示以什么结尾
[root@localhost 7.1]# cat sc.html | egrep "/p>$"
<p>address: hunan.changsha.furong</p>
<p>teacher feng PhoneNO: 18908495097</p>
<p>teacher feng wechat: 18908495097</p>
######################################################
1.1.3 " . "表示任意单个字符
示例:因为 . 表示任意单个字符,所以
"lizhuofu.{2}" 表示以lizhuofu开头的后面任意两个单个字符
"lizhuofu.{4}" 表示以lizhuofu开头的后面任意四个单个字符
"lizhuofu.{4,6}" 表示以lizhuofu开头的后面任意4 - 6个单个字符
######################################################
1.1.4 *表示前面的字符出现0次或者任意次
.*表示所有的字符
######################################################
1.1.5 |表示或者
######################################################
1.1.6 ^$ 表示空行
######################################################
1.1.7 +表示前面字符出现1次以上
######################################################
1.2 方括号表达式
1.2.1 [abc] 表示 a,b,c任意一个
[abc] = "a|b|c"
######################################################
1.2.2 [a-z] 表示小写字母
######################################################
1.2.3 [A-Z] 表示大写字母
######################################################
1.2.4 [0-Z] 表示数字和字母
######################################################
1.2.5 ^在方括号里面和外面的区别
^在方括号里面表示对字符取反
^在方括号里面表示以某个字符开头
示例:查找不是以数字开头的行
######################################################
1.3 []和 {}组合使用
[0-9]{2} 表示0-9里面可以取2次的意思,随便你取哪一个,取两次
[0-9]{2,5} 表示从0-9里可以取2-5次的数字,随便你取哪个,至少两次,最多取5次
[0-9]{2,} 表示从0-9里可以取两次以上,最少2次
a{2} 表示花括号前面的a连续出现两次
abc{2}表示abc中的c出现2次
######################################################
2.从文本里面过滤出所有邮箱地址
文本:
root@localhost lianxi]# cat mail.txt
wang sheng hu 8898989@qq.com fjdkfjd
fengdeyong@sina.com fjdkfjd
zhao zhao@163.com
yishiying_1213@163.com fjdkfjdkjfk
15、写一个表示邮箱的正则
feng@qq.com changsha
1234feng@163.com fengdeyong
meng.xianhui@yahoo.cn sanchuang
liudehua@sina.com
10001@qq.com
123_ui@12306.cn
qilu@qilu.edu
qilu@qilu.edu/fjdkfjk/fjdk
[root@localhost lianxi]#
字符串1 : a-Z_0-9
字符串2:0-Z
字符串3:a-Z
######################################################
3. 练习
相关文章
- Linux提权中常见命令大全
- [Linux] linux awk命令详解
- 【学习总结】快速上手Linux玩转典型应用-第2章-linux简介
- Linux 中“一切都是文件”概念和相应的文件类型
- Linux Shell脚本自动化编程实战-正则表达式RE
- 【Linux基础】linux下的stdin,stdout和stderr理解
- 【Linux基础】linux下修改ls显示的时间格式
- 【Linux常见问题】Centos7的网络配置问题
- Linux基础之linux服务器服务器间拷贝文件
- linux如deepin manjaro对笔记本电脑电池的伤害解决方案:TLP:一个可以延长 Linux 笔记本电池寿命的高级电源管理工具
- [Linux] 日志管理: rsyslogd 服务 (检测启动/自启动/日志位置)
- linux 服务器内存清理内存缓存 详细说明 java jvm
- linux驱动开发重点关注内容--摘自《嵌入式Linux驱动模板精讲与项目实践》
- 在linux下手动安装 apache, php, mysql--终极版
- L52.linux命令每日一练 -- 第八章 Linux磁盘与文件系统管理命令 -- resize2fs和fsck
- L35.linux命令每日一练 -- 第五章 Linux信息显示与搜索文件命令 -- which和whereis
- L17.linux命令每日一练 -- 第三章 文件过滤及内容编辑处理命令 -- more和less命令
- 嵌入式Linux开发,Ubuntu下交叉编译内核报错:error while loading shared libraries: /lib/x86_64-linux-gnu/libc++.so:
- 使用wget批量下载geo数据集的全部文件 linux下载geo数据 geo处理的数据不是下载原始数据 Linux如何下载ftp文件 geo ftp geo ftp下载 geo下载
- Linux测网速
- Linux中的Shell编程
- 云原生之使用Docker部署Linux命令大全搜索工具
- 【看表情包学Linux】软件包管理器 yum | Vim 编辑器介绍 | Vim 文本批量化操作 | 配置 Vim
- 【Linux】~ ctrl+z