了解Linux正則表達式之前,需要了解Linux中通配符和正則的區別:通配符主要用於bash環境,而正則大多數用於Linux三劍客(grep、sed、awk)等中…且Linux中的正則又和其他開發環境下的正則有所區別,咱們暫時研究的還只是Linux環境下的正則…
通配符基礎
通配符 描述 示例 * 任意多個字符 find . *.sh ? 代表任意一個字符 find . ?.sh ; 連續不同命令分隔 ls m1;ls m2 # 配置文件注釋 ####crontab#### | 管道符 find . -type f -name "*.txt" | xargs rm -f ~ 用戶的家目錄 oldboy~ - 上一次操作目錄 su - $ 變量符號 $PATH / 根 / > 重定向 echo “linux”>oldboy.sh >> 追加重定向 echo “linux”>>oldboy.sh < 輸入 xargs –n 2 <oldboy.txt << 輸入重定向 xargs –n 2 <<oldboy.txt ‘ 單引號所見即所得 echo ‘date’==>date “ 雙引號變量置換echo “date”==>date
num=3
echo “$num”==>3
ls ==>oldboy.sh
echo `ls`==>oldboy.sh
{] 內容序列 touch m{1..10}
正則表達式基礎組成
正則表達式 描述 示例 ^ 匹配行首 ^abc 匹配以abc開頭的行 $ 匹配結尾 def$ 匹配以def結尾的行 . 任意一個字符 a.c 匹配abc、adc等 \ 轉義字符,還原字符本身含義 \. 代表點本身 * 重復0個或者多個前一個字符 o* 代表0個o或者多個o .* 任意字符 ^.* 代表以任意字符開頭 [abc] 匹配字符集合裡的任意一個字符 [a-z][A-Z][0-9] 任意a-z,A-Z,0-9 [^abc] 匹配不包含^後的所有字符 [^abc] 不包含abc的所有字符 a\{n,m\}
擴展的正則表達式(grep –E 或者 egrep)
正則表達式 描述 示例 + 匹配1個或者多個
元字符
元字符(meta character)是一種Perl風格的正則表達式,只有一部分文本處理工具支持它,並不是所有的文本處理工具都支持。
正則表達式 描述 示例 \b 單詞邊界 \bcool\b 匹配cool,不匹配coolant \B 非單詞邊界 cool\B 匹配coolant,不匹配cool \d 單個數字字符 b\db 匹配b2b,不匹配bcb \D 單個非數字字符 b\Db 匹配bcb,不匹配b2b \w 單個單詞字符(字母、數字與_) \w 匹配1或a,不匹配& \W 單個非單詞字符 \W 匹配&,不匹配1或a \n 換行符 \n 匹配一個新行 \s 單個空白字符 x\sx 匹配x x,不匹配xx \S 單個非空白字符 x\S\x 匹配xkx,不匹配xx \r 回車 \r 匹配回車 \t 橫向制表符 \t 匹配一個橫向制表符 \v 垂直制表符 \v 匹配一個垂直制表符 \f 換頁符 \f 匹配一個換頁符
POSIX字符類
POSIX字符類是一個形如[:...:]的特殊元序列(meta sequence),他可以用於匹配特定的字符范圍
正則表達式 描述 示例 [:alnum:] 匹配任意一個字母或數字字符 [[:alnum:]]+ [:alpha:] 匹配任意一個字母字符(包括大小寫字母) [[:alpha:]]{4} [:blank:] 空格與制表符(橫向和縱向) [[:blank:]]* [:digit:] 匹配任意一個數字字符 [[:digit:]]? [:lower:] 匹配小寫字母 [[:lower:]]{5,} [:upper:] 匹配大寫字母 ([[:upper:]]+)? [:punct:] 匹配標點符號 [[:punct:]] [:space:] 匹配一個包括換行符、回車等在內的所有空白符 [[:space:]]+ [:graph:] 匹配任何一個可以看得見的且可以打印的字符 [[:graph:]] [:xdigit:] 任何一個十六進制數(即:0-9,a-f,A-F) [[:xdigit:]]+ [:cntrl:] 任何一個控制字符(ASCII字符集中的前32個字符) [[:cntrl:]] [:print:] 任何一個可以打印的字符 [[:print:]]Linux 基礎入門教程----正則表達式基礎 http://www.linuxidc.com/Linux/2015-08/121441.htm
Linux正則表達式sed 詳述 http://www.linuxidc.com/Linux/2015-04/116309.htm
Linux正則表達式特性及BRE與ERE的區別 http://www.linuxidc.com/Linux/2014-03/99152.htm
grep使用簡明及正則表達式 http://www.linuxidc.com/Linux/2013-08/88534.htm
正則表達式的用法 http://www.linuxidc.com/Linux/2013-03/81897.htm
正則表達式之零寬斷言 http://www.linuxidc.com/Linux/2013-03/81897.htm
Linux中正則表達式與文件格式化處理命令(awk/grep/sed) http://www.linuxidc.com/Linux/2013-03/81018.htm
基礎正則表達式 http://www.linuxidc.com/Linux/2014-09/106296.htm
常用正則表達式整理 http://www.linuxidc.com/Linux/2014-10/108076.htm