好的,所以^[A-Z]
意味着以大写字母开头。那么^[A-Z]*
是什么意思呢?这不是指大写字母出现零次或多次吗?因为它在输出中包含空行而不是大写字母,所以我真的很困惑。另外,你能解释一下^[A-Z]*$
吗?
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:~#
答案 0 :(得分:2)
空行 零或更多出现大写字母。后一个表达式是含糊不清,以零开头和结尾或更多出现大写字母,也称为“任何东西”。
更新:请参考Tanzelax的答案,作为本应接受的答案。
答案 1 :(得分:1)
零次或多次出现可包括零次。
因此,^[A-Z]*
只包含'新行',即每一行。
$
是行尾,因此^[A-Z]*$
表示'新行,后跟任意数字(包括零)的大写字母,后跟行尾',这只是空白行(这是'新行,零大写字母,行尾')。
答案 2 :(得分:1)
如果您询问在表达式末尾添加星号的内容是什么,则表示匹配0次或更多次。在您提供的表达式中,它意味着匹配尽可能多的连续大写字母。
http://www.regular-expressions.info/也可能对你有所帮助。