Linux - 正则表达式
目录1. 正则表达式(regular expression)1.1 元字符1.1.1^ 表示以什么开头1.1.2$ 表示以什么结尾1.1.3" . "表示任意单个字符1.1.4*表示前面的字符出现0次或者任意次 .*表示所有的字符1.1.5|表示或者1.1.6 ^$ 表示空行1.1.7+表示前面字符出现1次以上1.2方括号表达式1.2.1[abc] 表示 a,b,c任意一个 1.2.2[a-z]
目录
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. 练习
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)