簡體   English   中英

對此正則表達式感到困惑

[英]Confused about this regular expression

好吧,所以^[AZ]意思是大寫字母開頭。 那么^[AZ]*是什么意思? 這是否意味着零個或多個大寫字母出現? 因為這確實使我感到困惑,因為它在輸出中包含空行而不是大寫字母。 另外,您能解釋^[AZ]*$嗎?

mugbear:~# clear
mugbear:~# cat emptyspace 
line1
line2

line4
line5

line7
mugbear:~# grep '^[A-Z]*' emptyspace                                            
line1
line2

line4
line5

line7
mugbear:~# grep '^[A-Z]*$' emptyspace


mugbear:~# 

空行 零個或多個大寫字母出現。 后者的表達 模棱兩可,以 零個或多個大寫字母(也稱為“任何”)開頭和結尾。

更新 :請參考Tanzelax的答案作為應接受的答案。

零個或多個事件可以包括零個事件。

因此, ^[AZ]*僅包括“換行”,即每一行。

$是行尾,因此^[AZ]*$表示“新行,后跟任意數字(包括零)的大寫字母,后跟行尾”,僅是空行(即“新行” ,大寫字母零,行尾')。

如果您要問在表達式末尾加星號是什么意思,則意味着要匹配0次或多次。 在您提供的表達式中,它表示要匹配盡可能多的連續大寫字母。

http://www.regular-expressions.info/可能也對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM