PHP  
downloads | documentation | faq | getting help | | php.net sites | links 
search for in the  
previousrecodeModificatori di criterio (Pattern Modifiers)next
Last updated: Wed, 10 Jul 2002
view this page in Printer friendly version | English | Brazilian Portuguese | Czech | Dutch | Finnish | French | German | Hungarian | Japanese | Korean | Polish | Romanian | Russian | Spanish | Turkish

LXXXVII. Funzioni per le espressioni regolari (Perl compatibili)

La sintassi utilizzata dalle espressioni regolari di queste funzioni ricorda da vicino Perl. Le espressioni regolari devono essere racchiuse tra delimitatori, ad esempio /. Ogni carattere che non sia alfanumerico od il backslash (\) pu� essere usato come delimitatore. Se il carattere usato come delimitatore deve essere utilizzato all'interno dell'espressione, questo deve essere preceduto dal carattere di escape (\). Infine, a partire dalla versione 4.0.4 di PHP, si possono anche usare i delimitatori stile Perl come (), {}, [], ed <>.

Il delimitatore finale pu� essere seguito da vari modificatori che agiscono sul criterio di riconoscimento. Per maggiori informazioni si rimanda al capitolo Modificatori di criterio (Pattern Modifiers).

Utilizzando le funzioni POSIX-esteso il PHP � in grado di supportare le espressioni regolari scritte con la sintassi POSIX-esteso.

Requisiti

Il supporto delle espressioni regolari � ottenuto mediante la libreria PCRE, che � un software open source, scritto da Philip Hazel, ed il cui copyright � detenuto dalla Universit� di Cambridge, Inghilterra. La libreria � disponibile all'indirizzo .

Installazione

A partire dalla versione 4.2.0 di PHP queste funzioni sono abilitate per default. Invece, nelle vecchie versioni, occorre configurare e compilare il PHP con --with-pcre-regex[=DIR] per attivare queste funzioni. Viceversa la funzioni PCRE possono essere disabilitate utilizzando --without-pcre-regex.

Configurazioni per l'esecuzione (Runtime Configuration)

Questa estensione non definisce alcuna direttiva di configurazione

Tipologia di risorse

Questa estensione non definisce alcun tipo di risorsa.

Costanti pre-definite

Tabella 1. Costanti di PREG

costantedescrizione
PREG_PATTERN_ORDER Ordina i risultati in modo tale che $matches[0] sia l'array di tutti i testi riconosciuti, $matches[1] sia l'array delle stringhe identificate dal primo criterio posto tra parentesi, e cos� via. Questa costante si usa solo con preg_match_all().
PREG_SET_ORDER Ordina i risultati in modo tale che $matches[0] sia l'array del primo set di testi riconosciuti, $matches[1] sia l'array del secondo set, e cos� via. Questa costante si usa solo con preg_match_all().
PREG_OFFSET_CAPTURE Vedere la descrizione di PREG_SPLIT_OFFSET_CAPTURE. Questa costante � disponibile a partire dalla versione 4.3.0 di PHP.
PREG_SPLIT_NO_EMPTY Questa costante indica a preg_split() di restituire solo segmenti non vuoti.
PREG_SPLIT_DELIM_CAPTURE Questa costante indica a preg_split() di catturare le espressioni tra parentesi nel criterio di delimitazione. Questa costante � disponibile a partire dalla versione 4.0.5 di PHP.
PREG_SPLIT_OFFSET_CAPTURE Se viene impostato questo flag, per ogni testo riconosciuto viene restituito l'offset nella stringa di ricerca. Occorre notare che questo cambia il tipo di valore restituito nell'array, ogni elemento �, a sua volta, un'array composto dalla stringa riconosciuta, all'indice 0, e dall'offset della stringa nell'indice 1. Questa costante � disponibile a partire dalla versione 4.3.0 di PHP e si utilizza solo nella funzione preg_split().

Esempi

Esempio 1. Esempi di espressioni di riconoscimento valide

  • /<\/\w+>/

  • |(\d{3})-\d+|Sm

  • /^(?i)php[34]/

  • {^\s+(\s+)?$}

Esempio 2. Esempi di espressioni errate

  • /href='(.*)' - manca il delimitatore finale

  • /\w+\s*\w+/J - il modificatore 'J' � sconosciuto

  • 1-\d3-\d3-\d4| - manca il delimitatore iniziale

Sommario
Modificatori di criterio (Pattern Modifiers) -- Questo capitolo descrive i possibili modificatori applicabili ad una espressione regolare
Sintassi delle espressioni regolari -- Descrizione della sintassi utilizzata da PCRE per la definizione delle espressioni regolari
preg_grep --  Restituisce una matrice degli elementi riconosciuti tramite le espressioni regolari
preg_match_all -- Esegue un riconoscimento globale con le espressioni regolari
preg_match -- Riconoscimento con espressioni regolari
preg_quote -- Inserisce il carattere di escape nei caratteri delle espressioni regolari
preg_replace_callback -- Esegue ricerche e sostituzioni con espressioni regolari usando il callback
preg_replace -- Esegue una ricerca ed una sostituzione con le espressioni regolari
preg_split -- Suddivisione di una stringa tramite le espressioni regolari
User Contributed Notes
Funzioni per le espressioni regolari (Perl compatibili)
add a note about notes

14-Jul-2000 04:59

... so I find the solution for PCRE under Linux. Download the source code.
Compile it with --with-pcre-regexmake parameter. It's working just fine
with PHP 4.0.1pl2. One more time I learned: the safest (and the fastest)
way is build your own code from the source. :-)


24-Jul-2000 09:13

Please add a link from the ordinary regular expressions to these. Otherwise
they are easy to miss, when looking for regex functions, due the
abreviation.


12-Mar-2001 10:09

Ever wondered how to use a function within a PCRE?  here's how:

$content = preg_replace("/\*(\w+)\*/e",
"lookupImageCode($1)", $content);

This code replaces all instances of *text*, where text is a code for an
image, with the output of function lookupImageCode().  The /e and the
quotes around the function name and arguments are essential to make this
work :-)

I use this on one of my websites to query a database and cross-reference
image filenames with special codes input by press release writers in our
client's company.  They type the code of an image (displayed in a
catalogue onscreen on the site's backend) and this little wonder of code
changes it to an img src tag on the fly as the page is loaded.

Enjoy!

p.s.  thanks to the guys on #php who helped sort this out at 4am in the
morning my time! (donut, jfk, cardinal)  Contact me if you like.


22-Aug-2001 12:09

There is some really good/simple documentation of Perl regular expressions
at 


06-Mar-2002 05:33

If you're venturing into new regular expression territory with a lack of
useful examples then it would pay to get familiar with this page:



12-Mar-2002 06:56

Here's a translation of Friedl's email address matching regexp:



Friedl's perl original is available here:



14-Jun-2002 03:47

This is the easiest tutorial for regular expressions I have found yet.
Beginners should start here.
This tutorial is originally written for Jscript, but I think everything
applies to PHP.
(I had to chop the following url into small pieces to be able to post it
here)



script56/html/js56reconRegularExpressions.asp

add a note about notes
previousrecodeModificatori di criterio (Pattern Modifiers)next
Last updated: Wed, 10 Jul 2002
show source | credits | stats | mirror sites:  
Copyright © 2001, 2002 The PHP Group
All rights reserved.
This mirror generously provided by:
Last updated: Sun Jul 14 00:16:51 2002 CEST