歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> 正則表達式,正則

正則表達式,正則

日期:2017/3/6 8:55:31   编辑:學習Linux

正則表達式,正則

正則表達式,正則


正則表達式是你所定義的模式模板(pattern template), Linux可以利用它來過濾文本。

正則表達式類型

正則表達式是通過正則表達式引擎實現的。正則表達式引擎是一套底層軟件,復雜解釋正則表達式並使用這些模式進行文本匹配。

在Linux中,有兩種流行的正則表達式引擎。
- POSIX基礎正則表達式(basic regular expression, BRE)引擎
- POSIX擴展正則表達式(extended regular expression)引擎

定義BRE模式

特殊字符

.*[]^${}\+?|()

錨字符

點號字符

點號用來匹配除換行符以外任意單個字符。

字符組(character class)

用來限定待匹配的具體字符。

排除型字符組

尋找組中沒有的字符。只要在字符組的開頭加個脫字符^.


即使是排除,字符組仍必須匹配一個字符。

區間

可以在單破折線符號在字符組中表示字符區間。只需要指定區間的第一個字符、單破折線以及區間的最後一個字符就行了。

特殊字符組

星號

字符後放置星號表示該字符必須在匹配模式的文本中出現0次或多次。

擴展正則表達式

問號

類似星號,不過前面的字符可以出現0次或1次,單僅限於此。

加號

表示前面的字符可以出現1次或多次,但必須出現一次。

花括號

為可重復的正則表達式指定一個上限。這通常稱為間隔(interval)。可以用兩種格式來指定區間。

- m: 正則表達式准確出現m次。

- m, n: 正則表達式至少出現m次,至多n次。

管道符號|

管道符號允許在檢查數據時,用邏輯OR的方式指定正則表達式引擎要用的兩個或多個模式。如果任何一個模式匹配了數據流文本,文本就通過測試。如果沒有模式匹配,則數據流文本匹配失敗。

表達式分組

可以用圓括號進行分組。當將正則表達式模式分組時,該組會被視為一個標准字符。可以像對普通字符一樣給該組使用特殊字符。

實戰-解析郵件地址

基本格式: username@hostname
username可用字母數字字符以及以下特殊字符
- 點號
- 單破折線
- 加號
- 下劃線
hostname由一個或多個域名和一個服務器名組成。域名和服務器名只允許字母數字字符和點號、下劃線
從左往右開始構建正則表達式
1. 用戶名可以有多個有效字符。
^([a-zA-Z0-9_\-\.\+]+)@
2. hostname
([a-zA-Z0-9_\-\.])
3. 頂級域名
\.([a-zA-Z]{2,5})
組合起來就是
^([a-zA-Z0-9_\-\.\+]+)@([a-zA-Z0-9_\-\.])\.([a-zA-Z]{2,5})

http://xxx/Linuxjc/1157475.html TechArticle

Copyright © Linux教程網 All Rights Reserved