最近用bash寫了不少程式,個人認為bash的模式匹配比較讓人頭疼,特摘錄相關說明如下,供朋友們查詢。 功能
示例匹配物件
行首定位符
/^man/
匹配所有以
man開頭的行
行尾定位符
/man$/
匹配所有以
man結尾的行
匹配單個字元
/m..n/
匹配包含乙個
m,後跟兩個字元,再跟乙個n的行
匹配0個或多個重複的位於星號前的字元
/*man/
匹配包含跟在
0個或者多個空格的模式的
man的行
匹配一組字元中任乙個
/[mm]an/
匹配包含
man或
man的行
匹配指定範圍內的乙個字元
/[a-z]an/
匹配後面跟著
an的乙個a至
z之間的字元
匹配不在指定組內的字元
/[^a-z]/
匹配不在範圍a至
z之間的任意乙個字元
用來轉義元字元
/man\./
匹配包含
man,後面跟乙個點(如果不轉義的話則是匹配乙個任意字元)
詞首定位符
/\匹配包含以
man開頭的詞的行(vi和
grep
支援)詞首定位符
/man\>/
匹配包含以
man結尾的詞的行(vi和
grep
支援)匹配稍後將要使用的字元的標籤
s/\(man\)
acle/\1age/g
最多可以使用
9個標籤,模式中最左邊的標籤是第乙個。例如,模式
man被儲存為標籤1,用
\1表示。左邊這個例子中,查詢
manacle
,把它替換成
manage(sed、vi
和grep支援)
字元x的重複出現:
m次、至少
m次、至少
m次且不超過n次
n\匹配包含
3~5個連續的字母n的行
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...