shell(5) Regex.doc

來源:互聯網
上載者:User

regular expression engine

描述匹配模式的特殊字元和一般字元組成;

 

BRE POSIX
基本Regex,
ERE
擴充Regex;
gawk
支援
ERE

sed
不支援。

 

1)



Regex模式:

l        



區分大小寫

l        



空格作為一般字元處理

l        



工具或語言中的使用模式常為
/pattern/

 

特殊字元:
.*[]^${}/+?|()

 

BRE

/


轉義
escape
字元

正斜扛也需要轉義,雖然它不是特殊字元——因為
/
被用作表示模式?

 


^
”,定位器,從頭開始


sed -n
'/^abc/p'

^
必須放到Regex的最前,否則作為一般字元

 


$
”,定位器,尋找末尾

sed -n '/abc$/p'

eg:
尋找整行
, '/^this$/p'
;尋找空行
'/^$/d';

 


.

匹配分行符號外的任何單字元,必須有一個字元;

 


[]
”,字元類

character class
(幾個字元之一),如
sed -n '/[Yy]es/p'

否定字元類,使用
[^]
,如
[^ch]
,表示不含這幾個字元,但是仍然需要一個字元;

定義字元範圍,如
[0-9]

[a-z]
,[
a-cx-z
]定義多個範圍

 

BRE
的特殊字元類:

[[:alpha:]]      

任意字母字元,大小寫

[[:alnum:]]     

任意字母、數字

[[:blank:]]     

空格或定位字元

[[:digit:]]       

數字

[[:lower:]]     

任意小寫

[[:print:]]      

任意可列印

[[:punct:]]     

標點符號

[[:space:]]     

任意空白字元,
包括垂直定位字元,
如空格,
lt

nl

CR

[[:upper:]]     

任意大寫

[[:cntrl:]]      
ASCII
控制字元

[[:graph:]]      

非控制非空格

[[:xdigit:]]      
16
進位數字

 


*

*
前的字元可不出現或多次出現,
/colou*r/


.*
”,出現在一行文本上任意位置的單詞

*
用於字元類:

eg:
$echo "bt" | sed -n '/b[ac]*t/p'             
#TBD


ac

可任意出現?

 

ERE

?


*
的不同:不出現或僅出現一次,也可與字元類連用

 


+


*
的不同:必須出現一次或多次

 


{}

對可重複字元出現次數進行限制
(interval)

{m}

{m,n}

/{min,max/}
,{
m,
}表示最少
m

be{1}t
  
#

等價於
bet

gawk
中需指定參數
--re-interval

eg:

echo
"bt"|gawk --re-interval '/be{1}t/{print $0}'

用於字元類:

gawk
--re-interval "/b[ae]{1,2}t"

 


|

邏輯
or
,指定多個Regex,
gawk '/cat|dog/'

 


()

分組,一個組合作為一個標準字元處理,
eg:

gawk
'/sat(urday)?/       
#

要求
urday

出現
0


1

次;

gawk
'/(c|b)a(b/t)/'              
#TBD

:等價於
'[cb]a[bt]'??

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.