目錄
1.?正則表達式(regular expression)
1.1 元字符
1.1.1? ^ 表示以什么開頭
1.1.2? $ 表示以什么結(jié)尾
1.1.3? ?" . "表示任意單個字符
1.1.4? *表示前面的字符出現(xiàn)0次或者任意次
?.*表示所有的字符
1.1.5? |表示或者
1.1.6 ^$ 表示空行
1.1.7??+表示前面字符出現(xiàn)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] 表示數(shù)字和字母
1.2.5? ^在方括號里面和外面的區(qū)別
1.3? []和 {}組合使用
2.從文本里面過濾出所有郵箱地址
3. 練習
1.?正則表達式(regular expression)
regular 常規(guī),規(guī)則的
expression 表達式,公式
什么是正則?
使用一些特殊字符+字母和或數(shù)字按照某個規(guī)則組合成一 個公式用來表示某個意思這就叫正則表達式
為什么需要使用它?
查找的場景特別適合使用正則,大海撈針
正則用在哪里?
正則表達式是一種方法,很多命令可以采用這種方法
vim ,grep,sed,awk等都支持正則表達式
######################################################
1.1 元字符
元字符:有特殊含義的字符,可以表示其他的含義
1.1.1? ^ 表示以什么開頭
[root@localhost 7.1]# cat sc.html | egrep "^<h1"
<h1>Welcome to sanchuang!</h1>
<h1>三創(chuàng)同樂歡迎您!</h1>
######################################################?
1.1.2? $ 表示以什么結(jié)尾
[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? *表示前面的字符出現(xiàn)0次或者任意次
?.*表示所有的字符
?######################################################
1.1.5? |表示或者
?######################################################
1.1.6 ^$ 表示空行
?######################################################
1.1.7??+表示前面字符出現(xiàn)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] 表示數(shù)字和字母
?######################################################
1.2.5? ^在方括號里面和外面的區(qū)別
^在方括號里面表示對字符取反
^在方括號里面表示以某個字符開頭
示例:查找不是以數(shù)字開頭的行
######################################################
1.3? []和 {}組合使用
[0-9]{2} 表示0-9里面可以取2次的意思,隨便你取哪一個,取兩次
[0-9]{2,5} 表示從0-9里可以取2-5次的數(shù)字,隨便你取哪個,至少兩次,最多取5次
[0-9]{2,} 表示從0-9里可以取兩次以上,最少2次
a{2} 表示花括號前面的a連續(xù)出現(xiàn)兩次
abc{2}表示abc中的c出現(xiàn)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. 練習
文章來源:http://www.zghlxwxcb.cn/news/detail-404710.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-404710.html
到了這里,關(guān)于Linux - 正則表達式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!