shell程式設計 正規表示式

2021-09-06 11:03:36 字數 1361 閱讀 6622

正規表示式是一種用於文字匹配的通用語言。

正規表示式的基本組成部分:

正規表示式

描述例子

^行起始標記

^abc匹配以abc起始的行

$行結束標記

abc$匹配以abc結束的行

.匹配任意乙個字元

abc . 匹配abc後跟任意乙個字元

[ ]匹配包含在[字元]之中的任意乙個字元

abc[de] 匹配abcd 或者 abce

[ ^ ]

匹配除[^字元]之中的任意乙個字元

abc[^de] 匹配除abcd 或 abce 外abc後跟任意乙個字元

[ - ]

匹配[ - ]之中制定範圍中的任意乙個字元

abc[d-g] 匹配abc後跟d-g 中任意單個字元

?匹配之前的項1次或者0次

co?l 匹配 col 或者 cl (1次或者0次)

+匹配之前的項1次或者多次

go+al 匹配 goal 或者gooooal ,o個數大於等於1

*匹配之前的項0次或者多次

ab*c 匹配abc、abbc、或者ac. *之前字元個數大於等於0

( )建立乙個用於匹配的子串

exam(inations)? 匹配 exam 、examinations

匹配之前的項n次

[0-9] 匹配任意乙個三位數

之前的項至少需要匹配n次

[0-9] 匹配至少乙個三位數

指定之前的項必須匹配的最少和最多次數

[0-9] 匹配乙個三位數到五位數之間的數

|交替匹配 | 兩邊任意一項

oct [1st|2nd] 匹配 oct 1st 或者 oct 2nd

\轉義字元,將上面介紹的特殊字元進行轉義

a\.b 匹配" a.b " 而不是a\\\\b

正規表示式

描述例項

[:alnum:]

字母與數字組合

[[:alnum:]]+

[:alpha:]

字母字元(包括大小寫字母)

[[:alpha:]]

[:blank:]

空格與製表符

[[:blank:]]*

[:digit:]

數字字元

[[:digit:]]?

[:lower:]

小寫字母

[[:lower:]]*

[:upper:]

大寫字母

[[:upper:]]

[:punct:]

標點符號

[[:punct:]]

[:space:]

空白字元()

[[:space:]]+

shell程式設計 正規表示式

正規表示式是用於字元排列和匹配模式的一種語法規則。它主要用於字串的模式分割 匹配 查詢及替換操作。萬用字元 元字元作用 前乙個字元匹配0次或任意多次。匹配除了換行符外任意乙個字元。匹配行首。例如 hello會匹配以hello開頭的行。匹配行尾。例如hello 會匹配以hello結尾的行。匹配中括號中...

shell程式設計 正規表示式

正規表示式是一種文字模式匹配,包括普通字元和特殊字元,它是一種字串匹配模式,可以用來檢查乙個字串是否含有某種子串,將匹配的子串替換或者從某個字串中取出某個條件的子串。shell也支援正規表示式,但不是所有命令都支援正規表示式,常見的命令只有grep sed awk命令支援正規表示式。示例 資料來源 ...

shell程式設計之正規表示式

1 正規表示式 其實就是一種規範,也就是模式,約束字串等符合什麼樣的格式,比如要求字串必須a開頭,t結尾,符合這樣條件的字串就要用到正規表示式。2 兩套庫 gnu linux中有有兩套庫用足正規表示式程式設計,posix庫,自帶的 pcre庫,perl,功能比較全,本文採用perl。3 初體驗 eg...