Sintassi PCRE per le regex: $ e ^

Vota questo articolo:
1 / 52 / 53 / 54 / 55 / 5 Vota questo articolo per primo!
Loading ... Loading ...
di Salvatore Capolupo, ultimo aggiornamento: giugno 11, 2010
Share on Tumblr
23da6cfd1877b18617e8deace0f74f0c
In questo post vediamo rapidamente il significato dei simboli $ e ^ esternamente alla definizione di una classe regex, quindi in modalità standard.
Il carattere apice (^) deve essere il primo carattere del pattern se è necessario esprimere un numero di alternative (OR), avendo l’accortezza di riportarlo all’inizio di ognuna di esse. Ovvero se tutte le possibili alternative iniziano con ^ il pattern deve corrispondere soltanto all’inizio (prefisso).
Il carattere dollaro ($) definisce un’asserzione secondo cui la corrispondenza deve avvenire necessariamente a fine stringa, oppure subito dopo un carattere di fine riga ovvero l’ultimo carattere della stringa per default. 
Esempio mediante l’utilizzo della funzione preg_replace:

<?php

$hostname = 'www.php.net';

// remove www subdomain from a hostname
echo preg_replace( '/^www[.]/i', '', $hostname ) . PHP_EOL;    // output: php.net

// remove tld from a hostname
echo preg_replace( '/[.].{2,4}$/i', '', $hostname  ) . PHP_EOL;    // output: www.php

?>

L’esempio del link (fonte) ricalca esattamente i concetti espressi in precedenza, ovvero la corrispondenza che deve necessariamente essere ad inizio e a fine stringa.

Finisci di leggere…