一概念
1.萬用字元:英文wildcard,
萬用字元是一種特殊語句,主要有星號(*)和問號(?),用來模糊搜尋檔案。當查詢檔案夾時,可以使用它來代替乙個或多個真正
字元。
2.正規表示式
,又稱規則表示式
。(英語:
regular expression,在**中常簡寫為regex、regexp或re),電腦科學的乙個概念。正則表通常被用來檢索、替換那些符合某個模式(規則)的文字。
萬用字元與正規表示式很容易混淆,首先要明白二者是不同的,個人感覺萬用字元用於
linux
的shell命令(如檔名相關操作)中,而正規表示式用於文字內容中的字串搜尋和替換等。萬用字元是linux系統本身就支援的,而正規表示式用於vim編輯器或awk程式,這些文字處理工具正是由於支援正規表示式才變得強大。
二型別
1.萬用字元
星號(*)
可以使用星號代替0個或多個字元。如果正在查詢以aew開頭的乙個檔案,但不記得檔名其餘部分,可以輸入aew*,查詢以aew開頭的所有檔案型別的檔案,如aewt.txt、aewu.exe、aewi.dll等。要縮小範圍可以輸入aew*.txt,查詢以aew開頭的所有檔案型別並.txt為副檔名的檔案如aewip.txt、aewdf.txt。
問號(?)
可以使用問號代替乙個字元。如果輸入love?,查詢以love開頭的乙個字元結尾檔案型別的檔案,如lovey、lovei等。要縮小範圍可以輸入love?.doc,查詢以love開頭的乙個字元結尾檔案型別並.doc為副檔名的檔案如lovey.doc、loveh.doc。
萬用字元包括星號「*」和問號「?」
星號表示匹配的數量不受限制,而後者的匹配字元數則受到限制。這個技巧主要用於英文搜尋中,如輸入「「computer*」,就可以找到「computer、computers、computerised、computerized」等單詞,而輸入「comp?ter」,則只能找到「computer、compater、competer」等單詞。
2.正規表示式
元字元作用
*前乙個字元匹配0次或任意多次
.匹配除了換行符以外任意乙個字元
^匹配行首。例如:^helloworld會匹配以helloworld開頭的行
$匹配行尾。例如:helloworld$會匹配以helloworld結尾的行
匹配中括號裡的任意指定的乙個字元,但只匹配乙個字元
[^]匹配除中括號以外的任意乙個字元
\轉義符,取消特殊含義
表示其前面的字元恰好出現n次
表示其前面的字元出現不小於n次
表示其前面的字元至少出現n次,最多出現m次
三.舉例
1.正規表示式
^ 匹配行首
$ 匹配行尾
. 匹配任意字元
* 匹配*之前的字元0次或者多次
ls | grep 「^h.n」
匹配的是以h開頭的第二個字元為任意字元,第三個字元為n的所有檔案
ls | grep "^h.n*"
匹配的是以h開頭的第二個字元為任意字元,第三個字元為n的0次和2次
因為,hjkkk這個檔案的第三個字元為k不為n,*匹配的時候將n匹配0次的時候也就是第三個字元不為n也將之匹配並輸出,至於hrnkkk和hungss第三個字元都出現一次,所有grep順利將其匹配輸出
2.萬用字元
?代表匹配任意單個字元
* 代表匹配任意字元的組合也也可以匹配單個字元
特別注意的是*在正規表示式中個萬用字元中使用的不同
正規表示式和萬用字元的區別
正規表示式和萬用字元有許多相似的地方,但它們作用 用法 格式有許多差別。符號 正規表示式 萬用字元 匹配前面符號任意的字元 匹配零個或多個字元 centered 匹配任何單個字元 a z 包含大小寫 不包含大小寫 任意長度字元 以點號開頭的任意字元 轉義 行首 行尾 當前使用者家目錄 任意單一字元 ...
正規表示式 和 萬用字元
正規表示式 正規表示式主要是用來描述乙個句法規則的模式。其實說的通俗一點,就是利用字元和元字元的組合,對一些符合既定句法的模式進行模糊匹配。它的主要功能是文字查詢和字串操作。正規表示式的基本元素包括普通字元和元字元,在linux shell裡面,常用的正規表示式元字符集為 s 每乙個元字元都有自己在...
萬用字元和正規表示式
1.like操作符 2.百分號萬用字元 在搜尋串中,表示任何字元出現的任意次數。不能匹配null,如like jet 表示以jet開頭的後面不管多少字元的匹配。如果區分大小寫查詢,使用binary select from test where binary name test 3.下劃線萬用字元 下...