正則表達式,文件名通配,擴展正則之間的一些異同

  正則表達式是一個神器,但初學linux時候還有文件名通配這樣的東東。今天就總結一下文件名通配,正則表達式,擴展正則表達式之間有什麼異同。可能寫的不全,求指教。linux


使用方面git

 正則多用來匹配過濾文本內容。正則表達式

 文件名通配符則用來匹配文件名較多。vim

支持命令:ide

 文件處理,查看cp find ls rm mv touch 等一系列的文件匹配查找命令。(和上面說的是一個意思)工具

 正則表達式則用在文本內容處理的各類工具grep,awk,sed,vim末行模式等。spa


匹配功能上正則規矩多,天然能力更強大,因此就這的區別多點。orm

匹配規則上相同點it

一.字符匹配:class

 

[:digit:]數字、[:lower:]小寫、[:upper:]大寫、[:alpha:]字母、[:alnum:]字母數字、[:punct:]標點、[:space:]空格 [xdigit]16進制 二者相同。

[^]括號內除外。[]括號內任一字符匹配。[]內的- ,的使用    二者規則也相同。 

二. 次數匹配


 在正則中支持次數匹配且分爲精確次數和模糊次數,在文件名通配中只支持*。

 文件名通配中    ?表示任意單個字符且這個字符會出現一次。  *表示任意字符出現任意次。

 正則中 .在表示任意字符,*表示*前面的字符出現任意次。.*表示任意字符出現任意次。?表示前面的字符出現1次或0次,即表示前面的字符無關緊要。?須要轉義。

三. 位置錨定。

 

 正則支持,通配符不支持。

 匹配由非特殊字符組成的單詞。正則匹配,文件名通配不支持。

 內容分組及引用。正則支持,文件名通配不支持。


由於擴展正則和文件名通配的區別和上面的一致,就(同上)。 


擴展正則和正則的區別。


 擴展正則中次數匹配中? + {} 不在須要\ 轉義符 。

 位置錨定中的單詞總體錨定<>都還須要\轉義符。

 內容分組()也不須要\轉義符。

 擴展正則中提供了新的匹配規則,或者|。




寫完了。

相關文章
相關標籤/搜索