Почему мое регулярное выражение Perl не удаляет определенные строки после символов новой строки?

Почему мое регулярное выражение Perl не удаляет определенные строки после символов новой строки?

У меня есть текст, который выглядит так

text
\centering
more text

Я хочу преобразовать его в:

text
more text

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

Мой код:

perl -00 -pe 's/\R+\\centering\R+/\n/g' example.md

Это вообще не работает!

Обратите внимание, что и это, и мой альтернативный вариант

perl -00 -pe 's/\\centering/*/g' example.md

производить вывод

text
*
more text

И

perl -00 -pe 's/\R+/\n*/g' example.md

производит

text
*\centering
*more text

Итак, они работают по отдельности, но не вместе. Что я делаю не так?!

решение1

Не используйте 0в качестве разделителя записей, так удобнее777

perl -0777 -pe 's/\R+\\centering\R+/\n/g' example.md
#      ^^^

дает желаемый результат.

Отдокументация:

Специальное значение 00 заставит Perl поглощать файлы в режиме абзаца. Любое значение 0400 или выше заставит Perl поглощать файлы целиком, но по соглашению значение 0777 обычно используется для этой цели.

Связанный контент