Использование backreferences в Sed и Perl

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
shad8
проходил мимо
Сообщения: 1
Зарегистрирован: 2014-08-27 16:54:42

Использование backreferences в Sed и Perl

Непрочитанное сообщение shad8 » 2014-08-27 17:13:03

Доброго времени суток,

Подскажите пожалуйста почему происходит так:

Код: Выделить всё

$ echo "one two one" | sed -n '/\([a-z][a-z]*\) \1/p'
one two one


По-моему мнению, регулярное выражение в адресе sed должно совпадать лишь в том случае, если две одинаковых символьных последовательностей будут следовать одна за другой (one one two), но не так как это продемонстрированно в примере.

Такая же тенденция прослеживается и в Perl:

Код: Выделить всё

$ perl -e '$string = "one two one"; print "$string\n" if $string =~ /(\w+) \1/'
one two one


Где я не прав, куда смотреть и что почитать?

Спасибо Всем откликнувшимся.

Гость
проходил мимо

Re: Использование backreferences в Sed и Perl

Непрочитанное сообщение Гость » 2014-08-28 0:11:35

Вопрос снят, все банально и просто.

Совпадение в строке осущесвляется по символьной последовательности 'one two one'

По факту проблема была вызвана невнимательностиью. Тему можно закрыть/удалить.


Вернуться в «SHELL»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость