zl程序教程

您现在的位置是:首页 >  系统

当前栏目

Linux - 正则表达式

2023-09-11 14:17:06 时间

目录

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.2.3  [A-Z] 表示大写字母

 1.2.4  [0-Z] 表示数字和字母

1.2.5  ^在方括号里面和外面的区别

1.3  []和 {}组合使用

2.从文本里面过滤出所有邮箱地址

3. 练习


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. 练习