Le problème de la barre oblique inversée en PHP

La barre oblique inversée est un caractère spécial en PHP. Cela signifie que dans une chaîne, si nous voulons qu'elle se représente elle-même, nous devons la doubler :

php<?php
  $str = '\\ \\\\ \\\\\\'; // en réalité, la chaîne est '\ \\ \\\'
?>

La barre oblique inversée est également un caractère spécial des expressions régulières. Cela signifie qu'à l'intérieur d'une regex, pour qu'elle se représente elle-même, il faut l'écrire pas moins de quatre fois :

php<?php
  echo preg_replace('#\\\\#', '!', '\\ \\\\ \\\\\\'); // affichera '! ! !!'
?>

Écrivons maintenant une expression régulière dans laquelle le motif de recherche sera : barre oblique inversée une ou plusieurs fois. Dans ce cas, nous écrirons l'opérateur + pour pas moins de 4 caractères devant lui sans regroupement :

php<?php
  echo preg_replace('#\\\\+#', '!', '\\ \\\\ \\\\\\'); // affichera '! ! !'
?>
Задание 1

Soit la chaîne :

php<?php
  $str = 'a\\b c\\d e\\f';
?>

Trouvez dans cette chaîne toutes les sous-chaînes correspondant au motif lettre, barre oblique inversée, lettre.

Задание 2

Soit la chaîne :

php<?php
  $str = 'a\\b c\\\\d e\\\\\\f';
?>

Trouvez dans cette chaîne toutes les sous-chaînes correspondant au motif lettre, barre oblique inversée un nombre quelconque de fois, lettre.