Bash Shell 正規表示式與模式匹配

2021-06-03 02:26:16 字數 1085 閱讀 1392

最近用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正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...