繁体   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