通配符與正則表達式


通配符和正則表達式

2017-09-30-11:22:31個人原創,允許轉載,請注明出處,作者,否則追究法律責任。

通配符適用的地方:shell命令行或者shell腳本中

正則表達式適用的地方:字符串處理時,一般有一般正則和Perl正則。

 

1,通配符

 ﹡ 匹配所有:匹配0個到多個的任意的字符。

 

 

?匹配任意單個字符

 

[ ] 匹配括號內的1個字符

 

 

[ ! ] 匹配 不在中括號內的一個字符 (和正則中的 [ ^ ]作用相似,都是反向選擇)

 

當要把以上的* ,?,[ ]當成參數或者字符串處理時,就要限制shell不能當成通配符。這時的處理方法是:加單引號或者用\(反斜杠轉義)

 

 2,正則表達式

 

字符

作用

*

前一個字符匹配0次或任意多次

.

匹配除了換行符以外任意一個字符

^

匹配行首。例如:^helloworld會匹配以helloworld開頭的行

$

匹配行尾。例如:helloworld$會匹配以helloworld結尾的行

[ ]

匹配中括號里的任意指定的一個字符,但只匹配一個字符

[^]

匹配除中括號以外的任意一個字符

\

轉義符,取消特殊含義

{n}

表示其前面的字符恰好出現n

{n,}

表示其前面的字符出現不小於n

{n,m}

表示其前面的字符至少出現n次,最多出現m

 

字符匹配

.:匹配任意單個字符

*:匹配其前面一個字符出現任意次

?:匹配其前面的字符1次或0

+:匹配其前面一個字符出現至少一次(在擴展正則表達式中)

   

位置匹配

^:錨定行首

$:錨定行尾

\<\b:錨定詞首,其后面的任意字符必須作為單詞首部出現

\>\b:錨定詞尾,其前面的任意字符必須作為單詞尾部出現

\B:非單詞的開頭或結尾

^$:空白行

   

分組匹配用()

(ac)* 匹配ac這個分組出現任意次

\1:引用第一個左括號以及與之對應的右括號所包括的所有內容,同理還有\2,\3

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM