Il problema della barra rovesciata in PHP

La barra rovesciata è un carattere speciale in PHP. Ciò significa che in una stringa, se vogliamo che la barra rovesciata rappresenti se stessa, dobbiamo raddoppiarla:

php<?php
  $str = '\\ \\\\ \\\\\\'; // in realtà la stringa è '\ \\ \\\'
?>

La barra rovesciata è anche un carattere speciale delle espressioni regolari. Ciò significa che all'interno di un'espressione regolare, affinché la barra rovesciata rappresenti se stessa, deve essere scritta ben quattro volte:

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

Ora scriviamo un'espressione regolare in cui il modello di ricerca è: barra rovesciata una o più volte. In questo caso scriveremo l'operatore + per ben 4 caratteri prima di esso senza raggruppamento:

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

Data la stringa:

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

Trova in questa stringa tutte le sottostringhe secondo il modello lettera, barra rovesciata, lettera.

Задание 2

Data la stringa:

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

Trova in questa stringa tutte le sottostringhe secondo il modello lettera, barra rovesciata qualsiasi quantità di volte, lettera.