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

下載本文檔

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

文檔簡介

.F

必表達(dá)式

正則表達(dá)式

?1.正則?達(dá)

?2.正則期

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

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

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

達(dá)

符(ren)

ula檢

egexpreessSIO串

re:來

^的

^串

。

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

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

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

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

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

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

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

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

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

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

在linux中的地位

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

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

延伸正則表達(dá)式

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

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

延伸正則駕*式;

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

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

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

則表達(dá)式。

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

語系對正則表汨式的影響:

因為不同的語系其編碼順序是不同的,所以

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

?LANG=C時:01234…ABCD…Zabcd..N

?LANG=zh_TW時:01234…aAbBcCdD…zZ

查看語系的方法:echo$LANG

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

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

特殊符號代表意義

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

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

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

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

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

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

[:lower:]蜴〃寫?符,亦即a-z

|print:]代表任何可以被打印出來的字符

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

Cupper:]代表大寫字符,亦即A-Z

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

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

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

?回憶grep用舉

下面我們講grep更多的用法

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

名[-y?二

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

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

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

該行外,前面的n行也列出來

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

?grep還可以加上?n顯示出行號更容易查看

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

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

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

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

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

?用alias命令

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

例1:搜尋特定生符串

?搜索“the”和個字符串

?grep-n'the'regular_express.txt

?如果是選擇沒看些字符而的呢?即沒有the

這個字符串時才顯示在屏幕上,那怎么做?

grep-vn'the'reguIar_express.txt

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

大小寫)一

?例2:利用中括號口來搜尋集合字符

?如果要尋找test或者taste這個兩個單詞時,

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

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

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

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

表一個

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

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

?grep-n00'reguIar_express.txt

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

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

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

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

前面提到的[:digit:]

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

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

?行首與行尾符:$

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

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

?IIel111I

?grep-n'Nhe'reguIar_express.txt

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

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

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

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

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

何處理N-

弋其Iit<;m

?grep-n'$'regular_express.txt

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

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

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

用dos2unix命令轉(zhuǎn)化其格式,因為其行尾

的表示方法是不一樣的。

?空行如何查找?飛

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

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

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

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

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

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

是不相同的。

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

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

合形態(tài)。

?我們找g??d這個字符串?

?grep-n'g.dregular_express.txt

亶,3阡尊)114-

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

?對其結(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,\}”表示兩個以上

延伸正規(guī)表示法

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

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

其中用到兩次管道命令;如何簡化?

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

?是分支條件的符號

分支條件

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

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

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

開?!复ǎ?/p>

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

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

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

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

相兼容?!?/p>

?很多引擎都很類似,但不完全一樣,如.net

正則庫,JDK正則包。

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

種類

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

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

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

現(xiàn)

實(shí)

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

?如果匹配電話卸碼?

表L常用的元字符

代號說明

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

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

\s匹配任意的空白符

d曲數(shù)字

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

A匹配字符串的開始

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

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

兩種以連字號分隔的由A舌號碼:一種是三

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

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

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

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

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

本地號間可以用連字號或空格間隔,也可

以沒有間隔。你可以試試用分枝條件把這

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

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

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

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

這個例子是因為它能說明一個問題:使用

分枝條件時,要注意各個條件的順序。如

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

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

原因是匹配分枝條件時,將會從左到右地

測試每個條件,如果滿足了某個分枝的話,

就不會去再管其它的條件了

分組

復(fù)

經(jīng)

已1

——

;

復(fù)

?你

達(dá)

達(dá)

奏1

進(jìn)

溫馨提示

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

最新文檔

評論

0/150

提交評論