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.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 "^Welcome to sanchuang!

三创同乐欢迎您!

###################################################### 

1.1.2  $ 表示以什么结尾

[root@localhost 7.1]# cat sc.html  | egrep "/p>$"

address: hunan.changsha.furong

teacher feng PhoneNO: 18908495097

teacher feng wechat: 18908495097

###################################################### 

1.1.3   " . "表示任意单个字符

示例:因为 . 表示任意单个字符,所以 

"lizhuofu.{2}" 表示以lizhuofu开头的后面任意两个单个字符

"lizhuofu.{4}" 表示以lizhuofu开头的后面任意四个单个字符

"lizhuofu.{4,6}" 表示以lizhuofu开头的后面任意4 - 6个单个字符

Linux - 正则表达式_第1张图片

 ######################################################

1.1.4  *表示前面的字符出现0次或者任意次

 .*表示所有的字符

 ######################################################

1.1.5  |表示或者

 ######################################################

1.1.6 ^$ 表示空行

Linux - 正则表达式_第2张图片

 ######################################################

1.1.7  +表示前面字符出现1次以上

Linux - 正则表达式_第3张图片

 ######################################################

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  ^在方括号里面和外面的区别

^在方括号里面表示对字符取反

^在方括号里面表示以某个字符开头

示例:查找不是以数字开头的行

Linux - 正则表达式_第4张图片

######################################################

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次

Linux - 正则表达式_第5张图片

######################################################

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

文本:

root@localhost lianxi]# cat mail.txt
wang sheng hu  [email protected] fjdkfjd
[email protected]  fjdkfjd
zhao  [email protected]
[email protected] fjdkfjdkjfk

15、写一个表示邮箱的正则
[email protected]  changsha
[email protected]  fengdeyong
[email protected]  sanchuang
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]/fjdkfjk/fjdk

[root@localhost lianxi]#

Linux - 正则表达式_第6张图片

字符串1 : a-Z_0-9

字符串2:0-Z

字符串3:a-Z

Linux - 正则表达式_第7张图片

 ######################################################

3. 练习

Linux - 正则表达式_第8张图片

 

你可能感兴趣的:(Linux笔记,正则表达式,linux,运维,centos,运维开发)