2013-08-09 4 views
0

я случайно найти это регулярное выражение в sed документов:

^\(.*\)\n\1$ 

И это объясняет:

This matches a string consisting of two equal substrings separated 
by a newline. 

Я вижу, что он соответствует любым символам, заканчивается символом новой строки, но больше ничего. Может ли кто-нибудь дать мне объяснение?

+0

Каждый ингредиент объясняется в этом разделе: http://www.gnu.org/software/sed/manual/sed.html#Regular-Expressions –

ответ

0

Образцы в круглых скобках () называются группы захвата.

\1 означает «независимо от первой группы захвата».

Вот характер пробой характера:

^ - matches the beginning of the input 
\( - begin capture group (the `(` character must be escaped with a backslash) 
.* - zero or more characters 
\) - end capture group 
\n - newline character 
\1 - the text "captured" by the first capture group 
$  - matches the end of the input 
0

\1 часть относится к первой скобке подвыражения, я. е. к первым «любым символам» перед новой строкой в ​​вашем случае.

Смежные вопросы