It計(jì)算機(jī)課件 正則表達(dá)式_第1頁(yè)
It計(jì)算機(jī)課件 正則表達(dá)式_第2頁(yè)
It計(jì)算機(jī)課件 正則表達(dá)式_第3頁(yè)
It計(jì)算機(jī)課件 正則表達(dá)式_第4頁(yè)
It計(jì)算機(jī)課件 正則表達(dá)式_第5頁(yè)
已閱讀5頁(yè),還剩83頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

.F

必表達(dá)式

正則表達(dá)式

?1.正則?達(dá)

?2.正則期

?3.正血荒nux中的地位?

?4.延伸的正則限達(dá)式,?

什么是正則表達(dá)式

達(dá)

個(gè)

符(ren)

ula檢

egexpreessSIO串

re:來(lái)

^的

個(gè)

^串

個(gè)

。

?正則表達(dá)式是由普通字符(例如字符a至Uz)

以及特殊字符(稱(chēng)為元字符)組成的文字

模式。正則表達(dá)式作為一個(gè)模板,將某個(gè)

字符模式與所搜索的字符串進(jìn)行匹配。

?1,正則表達(dá)式對(duì)不統(tǒng)管理員的用途?

可以減輕系統(tǒng)管理員的工作量

?2.正則表達(dá)式M具它用途?

很多軟件支撐正則表達(dá)式,所以我們可以

廣泛采用這這種表達(dá)式來(lái)提高我們的工作

效率,例如:在服務(wù)器端剔除垃圾郵件

在linux中的地位

?正則表達(dá)式在gux中的作用相當(dāng)于小學(xué)數(shù)

學(xué)中的乘法口決,是linux基礎(chǔ)中的基礎(chǔ)。

延伸正則表達(dá)式

?按照嚴(yán)謹(jǐn)程度分為:鼻

基礎(chǔ)正則表達(dá)式;

延伸正則駕*式;

延伸正則表達(dá)式;除了簡(jiǎn)單的一組字符處理

之外,還可以作群組的字符串處理,如找

Ixr或者找linux這個(gè)兩的慶,可以用延伸正

則表達(dá)式。

正則表達(dá)式的表示法

語(yǔ)系對(duì)正則表汨式的影響:

因?yàn)椴煌恼Z(yǔ)系其編碼順序是不同的,所以

我們要注意是用前環(huán)境是什么語(yǔ)系。

?LANG=C時(shí):01234…ABCD…Zabcd..N

?LANG=zh_TW時(shí):01234…aAbBcCdD…zZ

查看語(yǔ)系的方法:echo$LANG

為了避免這樣編碼所造成的英文與數(shù)字的擷取問(wèn)題,我們要

一些特殊符號(hào)進(jìn)行了解:

特殊符號(hào)代表意義

閭num:]代表英文大小寫(xiě)字符及數(shù)字,亦即0-9,A-Z,a-z

[:alpha:]代表任何英文大4寫(xiě)字符,亦即A-Z,a-z

【:blank:]代表空格鍵與[Tab]按鍵兩者

[:cntrl:]代表鍵盤(pán)上面的控制按鍵,亦即包括CR,LF,Tab,Del..等等

[:digit]代表數(shù)字而已,亦即0-9

[:graph:]除了空格符(空格鍵與[Tab]按鍵)外的其他所有按纏

[:lower:]蜴〃寫(xiě)?符,亦即a-z

|print:]代表任何可以被打印出來(lái)的字符

[:punct]代表標(biāo)點(diǎn)符號(hào)(punctuationsymbol),亦即:"‘???;:#$...

Cupper:]代表大寫(xiě)字符,亦即A-Z

匚space:]田可會(huì)產(chǎn)生空白的字符,包括空格舞,[Tab],CR等等

[:xdigit:]代表16迸位的數(shù)字類(lèi)型,因此包括:0-9,A-F,a-f的數(shù)字與字符

grep的一些進(jìn)階選項(xiàng)

?回憶grep用舉

下面我們講grep更多的用法

grep[-A][-B][-colbr=auto]“搜尋字符串”文件

名[-y?二

-A:后面可加數(shù)字,為after的意思,除了列出

該行外,后續(xù)的n行也列出來(lái)

-B:后面可加數(shù)字,為before的意思,除了列出

該行外,前面的n行也列出來(lái)

--color=auto可將正確的那個(gè)擷取數(shù)據(jù)列出顏色

?grep還可以加上?n顯示出行號(hào)更容易查看

相關(guān)數(shù)據(jù)。

?一般是查看該行1而且利用一colourauto

還會(huì)顯示出該曲的顏色,但是如果每句話

都寫(xiě)的話,比較麻煩,如何設(shè)置一下就可

以簡(jiǎn)單實(shí)現(xiàn)這一功能?

?用alias命令

?注:在使用正則表達(dá)式時(shí)要用'';

例1:搜尋特定生符串

?搜索“the”和個(gè)字符串

?grep-n'the'regular_express.txt

?如果是選擇沒(méi)看些字符而的呢?即沒(méi)有the

這個(gè)字符串時(shí)才顯示在屏幕上,那怎么做?

grep-vn'the'reguIar_express.txt

?grep-in'the'regular_express.txt(無(wú)論

大小寫(xiě))一

?例2:利用中括號(hào)口來(lái)搜尋集合字符

?如果要尋找test或者taste這個(gè)兩個(gè)單詞時(shí),

可以發(fā)現(xiàn),耳仰有共通的't?st'存在,那

么我們用正則表達(dá)式:

?grep-n't[ae]st'reguIar_express.txt

我們發(fā)現(xiàn)無(wú)論中括號(hào)中有幾個(gè)字符,都中代

表一個(gè)

如果找單詞中有“00”時(shí),如何表示?

如果不要單詞。。之前有g(shù)的話,我們?nèi)绻鳎?/p>

?grep-n00'reguIar_express.txt

?如果o。前不要小寫(xiě)字符,很容易的

[tbcd..….z]o。;但是這樣還是比較麻煩

我們還記的小玲字母在這里是連續(xù)的,我

們可以用[八3可;找數(shù)字,我們還可以用

前面提到的[:digit:]

?總結(jié):對(duì)口,[”及口和表格中提到的

特殊關(guān)鍵詞的了解。

?行首與行尾符:$

?如果想讓查找的某個(gè)詞在句首或句尾如何

實(shí)現(xiàn)?’

?IIel111I

?grep-n'Nhe'reguIar_express.txt

?如果只要行首出現(xiàn)小寫(xiě)字豆該如何實(shí)現(xiàn)?

?grep-n'A[a-z]'reguIar_express.txt

?行首不要字母開(kāi)頭?行首未用數(shù)字開(kāi)頭?

■注:人在口內(nèi)和口外的作用有何不同!

?如果要找出行理是小數(shù)點(diǎn).的那一行,該如

何處理N-

弋其Iit<;m

?grep-n'$'regular_express.txt

?注:這里小數(shù)去還有其它意義,所以我們

這里用轉(zhuǎn)義字符\。

?注:如果是在windows下的文本,我們可以

用dos2unix命令轉(zhuǎn)化其格式,因?yàn)槠湫形?/p>

的表示方法是不一樣的。

?空行如何查找?飛

?如果不要空行和街道用#注釋的部分,節(jié)約

用紙,我們?nèi)绾巫觯?/p>

?grep-v'八$,文件名Igrep-v'用’

?任意字符.與重復(fù)字符*

?*在做通配符甘臥代表任意多個(gè)字符,但是

在正則表達(dá)式里并不是通配符,兩者之間

是不相同的。

?小數(shù)點(diǎn)在正則表達(dá)式里代表一個(gè)任意字符。

?*代表重復(fù)前一個(gè)0到無(wú)窮多次的意思,為組

合形態(tài)。

?我們找g??d這個(gè)字符串?

?grep-n'g.dregular_express.txt

亶,3阡尊)114-

?grep-n'g*g'regular_express.txt

?對(duì)其結(jié)果進(jìn)行分析一

?grep-n"[0-9][0-9]*'reguIar_express.txt

?例5限定連續(xù)字符范圍{}

1i!

?grep-n'o\{2\}‘reguIar_express.txt

?grep-n'o\{2,5\}‘reguIar_express.txt

注:“\{2,\}”表示兩個(gè)以上

延伸正規(guī)表示法

-上節(jié)課除去空付利行首為#的行列,使用的

是grep-v?$'文件名Igrep-v'A#',

其中用到兩次管道命令;如何簡(jiǎn)化?

?Egr叩—v。$'|"#'文件名

?是分支條件的符號(hào)

分支條件

?正則表總式里的分枝條件指的是有幾種規(guī)

貝I」,如果滿足其中任意一種規(guī)則都應(yīng)該當(dāng)

成匹配,具體方法是用甘巴不同的規(guī)則分隔

開(kāi)。「川!

正則表達(dá)式的特性

?正則表達(dá)式引擎i正則表達(dá)式引擎是一種

可以處理與正則表達(dá)式的軟件。一般是應(yīng)

用程序的一部分:一般正則表達(dá)式并不互

相兼容?!?/p>

?很多引擎都很類(lèi)似,但不完全一樣,如.net

正則庫(kù),JDK正則包。

正則表達(dá)式引擎的內(nèi)部工作機(jī)制

種類(lèi)

兩擎:文本導(dǎo)向和與正則導(dǎo)向

。非常有用的特性,如:“惰

I'一/,只能在正則導(dǎo)向的

現(xiàn)

實(shí)

?正則導(dǎo)向引擎總是返回最左邊的匹配。

?如果匹配電話卸碼?

表L常用的元字符

代號(hào)說(shuō)明

?匹配除換行符以外的任意字符

\w匹配字母或數(shù)字或下劃線或漢字

\s匹配任意的空白符

d曲數(shù)字

、b匹配單詞的開(kāi)始或結(jié)束

A匹配字符串的開(kāi)始

s匹配字符串的結(jié)束

?0\d{2}-\d{8}|0\q{3}-\d{7}這個(gè)表達(dá)式能匹配

兩種以連字號(hào)分隔的由A舌號(hào)碼:一種是三

位區(qū)號(hào),8位本地號(hào)(,二

種是4位區(qū)號(hào),號(hào)位本地號(hào)。

?\(?0\d{2}\)?[?]?\d{8}|0\d{2}[?]?\d{8}這個(gè)表

達(dá)式匹配3位區(qū)號(hào)的電話將碼,其中區(qū)號(hào)可

以用小括號(hào)括起聚,也可以不用,區(qū)號(hào)與

本地號(hào)間可以用連字號(hào)或空格間隔,也可

以沒(méi)有間隔。你可以試試用分枝條件把這

個(gè)表達(dá)式擴(kuò)展成也支持4位區(qū)號(hào)的。

?\d{5}?\d{4}|\d{5}這個(gè)表達(dá)式用于匹配美國(guó)的

郵政編碼。美國(guó)郵編的規(guī)則是5位數(shù)字,或

者用連字號(hào)間隔的9位數(shù)字。之所以要給出

這個(gè)例子是因?yàn)樗苷f(shuō)明一個(gè)問(wèn)題:使用

分枝條件時(shí),要注意各個(gè)條件的順序。如

果你把它改成\d{5}|\d{5}-\d{4}的話,那么就

只會(huì)匹配5位的郵編(以及9位郵編的前5位)。

原因是匹配分枝條件時(shí),將會(huì)從左到右地

測(cè)試每個(gè)條件,如果滿足了某個(gè)分枝的話,

就不會(huì)去再管其它的條件了

分組

復(fù)

個(gè)

經(jīng)

已1

,

——

;

個(gè)

復(fù)

?你

來(lái)

號(hào)

國(guó)

達(dá)

達(dá)

個(gè)

奏1

對(duì)

進(jìn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論