歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux基礎:正則表達式

Linux基礎:正則表達式

日期:2017/2/28 16:03:40   编辑:Linux教程

學習Linux並且想在Linux技術圈子裡,有所發展,那麼shell scripts為必學課程,shell scripts 沒有固定的語法,並介於程序實際語言與命令之間的,形式和功能上更接近與前者,但並不是用戶程序開發,無需編譯。這個程序是純文本文件的,將一些shell的語法和指令(包括外包指令)寫在裡面。搭配正則表達式。管道或別的功能實現我們的想要處理目的。

經過上面的介紹,我們提到正則表達式,命令和一些程序設計語言,這篇文章中,我先介紹下正則表達式的用法。

說的簡單點正則表達式就幾個符號:

^ 只匹配行首

$ 只匹配行尾

\ 用來屏蔽一個元字符的特殊含義,因為有時在shell中一些元字符有特殊含義,可以用\使其失去原有的意義

. 匹配任意單字符

* 一個單子符後緊跟*,匹配0個或多個此單字符

[] 匹配[]內字符,可以是一個單字符,也可以是字符序列。也可以用- 表示[]內字符的序列范圍,如用[1-5][a-z]

duyunlong\{n\} 用來匹配前面duyunlong出現的次數。n為次數

^符號的用法

可以看到,在名為duyunlong的目錄底下有很多文件,如果我想找出以h開頭的文件

這樣就找出了,自己想要的文件,反之匹配行尾用$,

如果想要找文件開頭第三個字母為e的文件,我們用下面的命令,並了解 英文句號. 的用法,如下圖

除此之外,還可以用^$來查找空行

下面來看看\轉意字符的用法,有時候需要查找一些字符串,而他們包含了系統指定為特殊字符的一個字是特殊字符?一般意義上講,下列字符可以認為是特殊字符:

$ . ' " * [] ^ | ( ) \ + ?

假定要匹配包含字符"." 的各行而 "." 代表匹配任意單字符的特殊字符,因此需要屏蔽其含義。操作如下:

\.

上述模式不認為反斜槓後面的字符是特殊字符,而是一個普通的字符,及英文句點。

假定要匹配包含^的各行,將反斜槓放在它們的前面就可以屏蔽其特殊含義。如下:

\^

如果要在正則表達式中匹配以*.jpg結尾的文件,可以做如下操作

\*\.jpg

使用[]匹配一個范圍或集合

使用[]匹配特定的字符串或字符串集,可以喲個逗號將括號內要匹配的不同字符集分開,但並不強制要這樣做(一些系統提倡在復雜的表達式中使用逗號),這樣就可以增加模式的可讀性。

使用"-"來表示字符串的范圍,表明字符串的范圍從" -"左邊的字符開始到" - "右邊的字符結束。

如果熟知一個字符串匹配操作,應該常用[]模式

假定要匹配任意一個數字,可以使用:

[0123456789]

然後用"-"符號來簡化

[0-9]

字母的話

[a-z],

如要匹配任意字母

[a-zA-Z]

如要匹配任意數字或是字母,模式如下

[A-Za-z0-9]

在字符序列結合使用中,可以用[]指出字母的范圍。假定匹配一個單詞,以s開頭,中間的任意一個字母,以t結尾那麼操作如下:

a[a-z A-Z]t

Copyright © Linux教程網 All Rights Reserved