首先:在linux中 ,正則表達式是針對文件內容而言的。查用在shell的grep,sed ,awk等相關命令之中。
正則表達式的元字符:
. : 表示任意字符
字符次數錨定:
* : 表示* 之前的字符或模式出現任意次,其中包括0次
?: 表示?之前的字符出現0次或一次,需要注意的是,在linux中需要是\?。
\{m,n\}:表示其前面的字符或模式出現至少m次,至多n次
\{m,\}: 表示其前面的字符至少出現m次
\{0,n\}:表示其前面的字符至多出現n次
位置錨定:
^: 表示以其後面的字符開頭
$:表示以其前面的字符結尾
^$: 表示匹配空白行
匹配單詞:(需要注意單詞的含義。root是單詞,r..t 在linuxshell中不認爲是單詞)
\<word : 表示匹配word開頭的單詞。
word\>: 表示匹配word結尾的單詞
\<word\>: 表示匹配完整的單詞word
範圍匹配:
[0-9]:表示匹配數字
[a-z]:表示匹配小寫字母
[A-Z]:表示匹配大寫字母
[[:punct:]]:表示匹配標點符號
[[:space:]]:表示匹配空白字符
[[:lower:]]: 表示匹配小寫字母
[[:upper:]]:表示匹配大寫字母
[[:alpha:]]:表示匹配字母,不區分大小寫字母
[[:digit:]]:表示匹配數字
[[:alnum:]]:表示匹配數字字母
需要注意的是:範圍匹配表示可以匹配範圍中的一個字符。同時支持取反匹配。[^[::]]