閱讀117 返回首頁    go 技術社區[雲棲]


Unix Regex

基本元字符集(Metacharacters)及其含義 

^ 隻隻匹配行首 

$ 隻隻匹配行尾 

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

[ ] 隻匹配[ ]內字符。可以是一個單字符,也可以是字符序列。可以使用- 

表示[ ]內字符序列範圍,如用[ 1 - 5 ]代替[ 1 2 3 4 5 ] 

/ 隻用來屏蔽一個元字符的特殊含義。因為有時在s h e l l中一些元字符有 

特殊含義。/可以使其失去應有意義 

. 隻匹配任意單字符 

pattern/{n/} 隻用來匹配前麵p a t t e r n出現次數。n為次數 

pattern/{n,/}  隻含義同上,但次數最少為n 

pattern/{n,m/} 隻含義同上,但p a t t e r n出現次數在n與m之間 

 

邊界匹配( Boundary Matchers)

如果要匹配所有空行,執行以下操作: 

^ $ 

具體分析為匹配行首,又匹配行尾,中間沒有任何模式,因此為空行。 

如果隻返回包含一個字符的行,操作如下: 

^ . $ 

 

 

使用*匹配字符串中的單字符或其重複序列 

 

 

 

使用此特殊字符匹配任意字符或字符串的重複多次表達式。例如: 

compu*t 

將匹配字符u一次或多次: 

computer

computing

compuuuuuuut

 

 

使用/屏蔽一個特殊字符的含義

 

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

/*/.pas 

即可屏蔽字符*的特定含義。

 

 

 

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

 

使用[ ]匹配特定字符串或字符串集,可以用逗號將括弧內要匹配的不同字符串分開,但並 

不強製要求這樣做(一些係統提倡在複雜的表達式中使用逗號),這樣做可以增加模式的可讀性。 

使用“-”表示一個字符串範圍,表明字符串範圍從“-”左邊字符開始,到“-”右邊字 符結束。

 

 

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

[0123456789] 

然而,通過使用“-”符號可以簡化操作: 

[0-9] 

或任意小寫字母 

[a-z] 

要匹配任意字母,則使用: 

[A-Za-z]

注意^符號的使用,當直接用在第一個括號裏,意指否定或不匹配括號裏內容。 

[^a-zA-Z] 

匹配任一非字母型字符,而 

[^0-9] 

匹配任一非數字型字符。 

 

 

使用/{/}匹配模式結果出現的次數 

請看第一個例子,匹配字母A出現兩次,並以B結尾,操作如下: 

A/{2/}B 

匹配值為AAB 

匹配A至少4次,使用: 

A/{4,/}B 

可以得結果AAAAB或AAAAAAAB,但不能為AAAB。

 

 

經常使用的正則表達式舉例

^ 對行首

$ 對行尾

^[the] 對以the開頭行

[Ss]igna[lL] 對匹配單詞signal、signaL,Signal、SignaL

[Ss]igna[lL]/. 對同上,但加一句點

[mayMAY] 對包含may大寫或小寫字母的行

^USER$ 對隻包含USER的行

[tty]$ 對以tty結尾的行

/. 對帶句點的行

^d..x..x..x 對用戶、用戶組及其他用戶組成員有可執行權限的目錄

^[^l] 對排除關聯目錄的目錄列表

[.*0] 對0之前或之後加任意字符

[000*] 對000或更多個

[iI] 對大寫或小寫I

[iI][nN] 對大寫或小寫i或n

[^$] 對空行

[^.*$] 對匹配行中任意字符串

^......$ 對包括6個字符的行

[a-zA-Z] 對任意單字符

[a-z][a-z]* 對至少一個小寫字母

[^0-9/$] 對非數字或美元標識

[^0-0A-Za-z] 對非數字或字母

[123] 對1到3中一個數字

[Dd]evice 對單詞device或Device

/^q 對以^q開始行

^.$ 對僅有一個字符的行

^/.[0-9][0-9] 對以一個句點和兩個數字開始的行

'"Device"' 對單詞device

De[Vv]ice/. 對單詞Device或device

[0-9]/{2/}-[0-9]/{2/}-[0-9]/{4/} 對日期格式dd-mm-yyyy

[0-9]/{3/}/.[0-9]/{3/}/.[0-9]/{3/}/.[0-9]/{3/} 對IP地址格式nnn.nnn.nnn.nnn

[^.*$] 對匹配任意行

 

 

 

More info about Java Regex

 

 

 

 

 

 

最後更新:2017-04-02 03:42:36

  上一篇:go ssh框架整合實例子1-配置文件
  下一篇:go 數據庫主鍵生成器java代碼