正規表示法:就是處理字串的方法,他是以行為單位來進行字串的處理行為,透過一些特殊符號的輔助,可以讓使用者輕易的達到「搜尋/刪除/取代」某特定字串的處理程式
萬用字元和正規表示法的區別:
萬用字元代表的是bash操作介面的乙個功能,但正則表示法是一種字串處理的『表示法』,只要工具程式支援這種表示法,那麼該工具程式就可以用來作為正規表示法的字串處理之用
正規表示法:
基礎正規表示法:簡單的字串處理
延伸正規表示法:群組的字串處理
基礎正規表示法:
[ ] : 利用中括號來搜尋集合位元組 [a-za-z] [^0-9]
. : 小數點代表『一定有乙個任意位元組』的意思。 g..d
^ : 代表行首定位符 ^[a-z] ^#
$ : 行尾定位符 the$ \.$ ^$
* : 星星號代表『重複前乙個位元組,0到無窮多次』的意思,為組合形態。 ooo*
.* : 代表零個或多個任意位元組 找出任意數字 [0-9]*
\ : 限定連續字元的範圍{}, 就是限制乙個範圍區間內的重複位元組數。 因為的符號在shell中是有特殊意義的,因此,我們必須要使用跳脫字元\來讓他失去意義才行。x\ x 重複 m 次,x\ x 重複 至少m 次,x\ x 重複 至少m 次,但不超過n次, go\g go\g
\ ( root \ ) : 將root這個內容儲存在「保留空間」,最大儲存九個
\n : 通過\1 至\9 呼叫保留空間中的內容
查詢包含以root:開頭並以:root結尾的字序列
grep --color 「\ ( root \ ) \ ( : \ ).*\2\1」 /etc/passwd
擴充套件正規表示式:
等同於基本正規表示式
+ 表示前面出現過一次或多次,如tom+ --tom,tomm,tommm
? 前面的字元出現0次或者1次 如tom? --tom, to........
| 匹配邏輯或者,即匹配 | 前或後的字串
( ) 匹配正則集合
萬用字元:
[ ] 匹配列表內的任意字元,比如[abc],匹配a、b、c當中的乙個字元 [^0-9] [a-z] [a-z]
? 匹配任意乙個字元
* 匹配0到無窮多個任意字元
擴充套件萬用字元:
?() 括號裡面的值可以出現0次也可以1次
*() 括號裡面的值可以出現任意次 0次或1次或多次
+() 括號裡面的值可以出現1次或是多次
@() 括號裡面的值可以只能出現1次
posix規範:
特殊表示法 代表意義
[:alnum:] 代表英文大小寫及數字,亦即0-9,a-z,a-z
[:alpha:] 代表任何英文大小寫位元組,亦即a-z,a-z
[:blank:] 代表空白鍵與[tab]按鍵兩者
[:cntrl:] 代表鍵盤上面的控制按鍵,亦即包括cr,lf,tab,del....等等
[:digit:] 代表數字而已,亦即0-9
[:graph:] 除了空白位元組(空白鍵與[tab]按鍵)外的其他所有按鍵
[:lower:] 代表小寫位元組,亦即a-z
[:print:] 代表任何可以被列印出來的位元組
[:punct:] 代表標點符號(punctuation symbol),亦即: '' ' ? !; : # $ ....
[:upper:] 代表大寫位元組,亦即a-z
[:space:] 任何會產生空白的位元組,包括空白鍵,[tab],cr 等等
[:xdigit:] 代表16進製的數字型別,因此包括:0-9,a-f,a-f的數字與位元組
note:
$( ) 代表命令 和`` 相等
$(( )) 運算
[ ] 判斷功能 和test相等
大括號裡寫,或. 表示所有的值都被呼叫 mkdir / -p
Shell 正規表示式與萬用字元
正規表示式與萬用字元 1.正規表示式用來在檔案中匹配符合條件的字串,正則是包含匹配。grep awk sed等命令可以支援正規表示式。2.萬用字元用來匹配符合條件的檔名,萬用字元是完全匹配。ls find cp這些命令不支援正規表示式,所以只能使用shell自己的萬用字元來進行匹配。基礎正規表示式 ...
Shell萬用字元 正則 正規表示式
shell萬用字元 正則 正規表示式 shell 中支援使用萬用字元,常用的萬用字元如下 表示任意單個字元 表示任意長度的任意字串 表示匹配放在中的字符集中的任意乙個字串 大括號中的字串中用英文逗號隔開。www.2cto.com 宣告 以下的顯示目錄下的所有檔案不包括遞迴。示例1 顯示當前目錄下ap...
萬用字元與正規表示式
萬用字元與正規表示式很容易混淆,首先要明白二者是不同的,個人感覺萬用字元用於linux的shell命令 如檔名相關操作 中,而正規表示式用於文字內容中的字串搜尋和替換等。萬用字元是linux系統本身就支援的,而正規表示式用於vim編輯器或awk程式,這些文字處理工具正是由於支援正規表示式才變得強大。...