1. 程式人生 > >計算機基礎之正則表達式

計算機基礎之正則表達式

開頭 範圍 換行 表達式 擴展 bsp osi 例子 取反

* : 左邊的字符有0-無窮個
+ :左邊的字符有1-無窮個(擴展的,用egrep或 grep -E)
? :左邊的字符有0或1個
{n} :左邊的字符有n個
{n,m} :左邊的字符有n個-m個
{n,} :左邊的字符有n個到無窮個
. :除換行符以外的任意字符
^ :行首
$ :行尾


[] : 字符組內的任意字符
[a-zA-Z] 匹配a到Z

註意:如果要匹配的字符就是-本身, - 只能在開頭或結尾,且加上轉義符
[^] :對字符組內的每個字符取反,非字符組內的字符


例子:

egrep r[0-9]+t b.txt :r,t之間的數字有1個或多個
egrep -e abd -e abc b.txt 或
egrep ‘ab(d|c) ‘ b.txt 匹配abd、abc

註意正則表達式和通配符的區別。


posix定義的字符分類:
[:alnum:] 匹配範圍為[a-ZA-Z0-9]
[:alpha:] 匹配範圍為[a-ZA-Z]

計算機基礎之正則表達式