Kenraalishenkinen ongelma PHP:ssä

Kenraalishenki on erikoismerkki PHP:ssä. Tämä tarkoittaa, että merkkijonossa, jos haluamme, että kenraalishenki edustaa itseään, meidän on kaksinkertaistettava se:

php<?php
  $str = '\\ \\\\ \\\\\\'; // itse asiassa merkkijono '\ \\ \\\'
?>

Kenraalishenki on myös erikoismerkki säännöllisissä lausekkeissa. Tämä tarkoittaa, että säännöllisen lausekkeen sisällä, jotta kenraalishenki edustaisi itseään, se on kirjoitettava jopa neljä kertaa:

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

Kirjoitetaan nyt säännöllinen lauseke, jossa hakumalli on: kenraalishenki yksi tai useampi kerta. Tässä tapauksessa me kirjoitamme operaattorin + aivan 4 merkille ennen sitä ilman ryhmittelyä:

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

Annettu merkkijono:

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

Etsi tästä merkkijonosta kaikki alimerkkijonot mallin mukaisesti kirjain, kenraalishenki, kirjain.

Задание 2

Annettu merkkijono:

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

Etsi tästä merkkijonosta kaikki alimerkkijonot mallin mukaisesti kirjain, kenraalishenki mielivaltainen määrä kertoja, kirjain.