Запутался в этом регулярном выражении - PullRequest
0 голосов
/ 30 октября 2010

Хорошо, поэтому ^[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:~# 

Ответы [ 3 ]

2 голосов
/ 30 октября 2010

Пустая строка означает ноль или более вхождений заглавной буквы.Последнее выражение является неоднозначным, начинается и заканчивается нулем или более вхождений заглавной буквы, также известной как «что-нибудь».

Обновление : Пожалуйста, обратитесь к ответу Tanzelax как к ответу, который должен был быть принят.

1 голос
/ 30 октября 2010

Если вы спрашиваете, что делает добавление звездочки в конец выражения, это означает совпадение 0 или более раз.В указанном вами выражении это означает совпадение максимально возможного количества последовательных заглавных букв.

http://www.regular -expressions.info / также может вам помочь.

1 голос
/ 30 октября 2010

Ноль или более вхождений могут включать в себя ноль вхождений.

Таким образом, ^[A-Z]* включает только «новую строку», то есть каждую строку.^[A-Z]*$ означает «новую строку, за которой следует любое количество (включая ноль) заглавных букв с последующим концом строки», то есть только пустые строки (которые являются «новой строкой, нулевыми заглавными буквами, концом строки»).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...