788 Shares 5185 views

espressione regolare (PHP). PHP: espressioni regolari esempi

Quanto è grande e variegato mondo delle informazioni, altrettanto rapidamente, si espande e si sviluppa. Qualsiasi decisione – solo un punto nel processo globale del movimento. La conoscenza e l'esperienza permettono di capire il processo di raggiungere l'obiettivo, ma mai – non il risultato delle sue realizzazioni. E 'dubbio che si può parlare nel prossimo futuro sul risultato, ma è importante che il processo di lotta per è un processo significativo e obiettivamente necessario.

"Il desiderio e / o un sacco di soldi" non crea un algoritmo capace di questo, e, naturalmente, "libero" l'uomo fa, soprattutto quando non pensare a quello che stava facendo. In qualsiasi situazione il problema informazioni ha almeno un punto cieco, ma per lui, di solito subito, le macchie altri puliti sono visibili, e non necessariamente che essi sono tutti i fiori bianchi.

tecnologia di Internet ha semplificato l'accesso alle informazioni, ma la domanda è – come mettere su avere il desiderato – non semplificato, e ha acquisito nuova "volume" del lavoro. E sebbene PHP espressione regolare gap è chiaramente non esaurisce, sono un significativo passo in avanti.

semplici funzioni + algoritmo = modello

Offrendo le espressioni regolari, PHP algoritmo riduce significativamente il contenuto, ma gli algoritmi di funzioni di ricerca / sostituzione e di lavorazione usuali non trovato perso la loro importanza. Le nuove idee non lasciano presagire la rivoluzione informatica. Il massimo che ci si può aspettare – codice compatto e aumentare lo sviluppatore la possibilità di formulare correttamente una query di ricerca.

Si deve sapere e applicare sul PHP espressioni regolari. Esempi convincente ed efficace. Ma dovrebbe dare il rapporto che con l'avvento di un nuovo motore di ricerca, il centro di gravità spostato al modello – una sorta di meccanismo di, anche se in realtà sostituito da una serie di semplici funzioni di ricerca, le condizioni, loop, e altri operatori.

avere:

  • qualità e strumento moderno – è bene;
  • vedere e utilizzare l'esperienza dei colleghi è la materia;
  • che unisce realtà e idea virtuale – una garanzia di successo.

Il raggiungimento di conoscenza di come è stato necessario per capire il problema, per risolverlo, è spesso più importante del risultato specifico.

Espressioni regolari in PHP sono rappresentate da una serie di funzioni nella sintassi del linguaggio e un sacco di esempi utili su Internet. A causa di sintassi possibilità di applicazione specifici sono limitate solo dalla fantasia dello sviluppatore, ma sleuet tenere presente che non tutti i modelli funzionerà. Utilizzando PHP convalida delle espressioni regolari è essenziale.

carattere di ricerca semplice (stringa)

Simbolo – questo non è sempre un singolo byte, ed è spesso un simbolo, come un chip, ha un significato preciso in aggiunta. Codifica specifica i caratteri visibili nel codice diverso. Il simbolo può avere diverse opzioni: "$" = "USD" = "USD", … – è l'esatto significato di qualcosa che da qualche parte, ma non necessariamente in prossimità, a causa della valuta. Tuttavia, il significato esatto potrebbe risiedere in PHP variabile, che inizia sempre con il carattere "$", ma non può iniziare con "USD" e "USD".

Il simbolo del programma può essere un nome di funzione (stringa) nel contesto di: riconoscere e soddisfare – è dalla programmazione orientata agli oggetti dinamici, quando la struttura, le funzioni PHP regolare espressioni vengono utilizzati direttamente per prendere decisioni. Trovato il simbolo "giri", che è, di per sé determina cosa fare nel luogo in cui si trova, e il modo in cui è, "che ritiene" necessario.

Cercare un carattere / riga – non è un semplice esercizio come, e più informazioni, più chiara e meglio è. Non è sempre necessario trovare i dieci migliori dei prezzi alimentari, scegliere deliziose ricette torta di compleanno, o per determinare l'appaltatore per il controsoffitto.

Spesso è necessario ottimizzare gli algoritmi semplici non sono semplici informazioni aritmetica o in condizioni difficili, quando il carattere desiderato di scegliere da una base di dati, e la linea in cui è necessario trovare – un centinaio di siti. Il prezzo è pari a selezionare un carattere dal momento in database di esempio, e il prezzo di dove cercare – tempo di ricerca centinaia di siti noti.

simbolo Lone – non è una frase, e non poche frasi, avrebbe potuto essere ovunque ed essere il più piccolo, se lo desideri. Come per determinare ciò che è stato trovato è il desiderato?

Esempio: ricerca di prezzi

Basta trovare il simbolo testo "$" – un po '. Controllare che si trova ad affrontare un numero, non è sempre sufficiente. Se si fornisce un punto o un numero prima del simbolo "$" è una garanzia che i prezzi ai quali i simboli monetari sono davanti non saranno prese in considerazione. Ci sono anche omesso il prezzo, che in genere non è specificato la valuta, ma sulla pagina è su istruzioni esplicite.

In generale, la soluzione del problema nel modo consueto gonfiare oltre algoritmo di riconoscimento e che richiede tempo. Nel frattempo, utilizzando un'espressione regolare, il numero di PHP troverà senza problemi.

$ CContents = preg_match_all ( "/ [0-9] + ([ $] | USD | y £ | ue) {1} / i.";

"Guarda e-mail – 2usd;
";
"Trova e-mail – 2u.e;
.";
"E-mail di lavoro – UE2;
";
"Controllare la posta elettronica – $ 13", $ aresult);
. '; '. implode ( '', $ aresult [0]). '
'.

Risponderà: "2; 2USD, 2u.e.", ma non ha trovato nulla nella linea: "controllare la posta elettronica – $ 13."

Che prevede la presenza del pattern davanti o dietro al personaggio, è possibile raggiungere il successo rapidamente nella maggior parte dei casi.

$ CContents = preg_match_all ( "/ ([0-9] + ([ $] | USD | y £ |. Ue) {1}) | (([$] | USD | y £ . | ue) {1} [0-9] +) / i ";
"Guarda e-mail – 2usd;
";
"Trova e-mail – 2u.e;
.";
"E-mail di lavoro – UE2;
";
"Controllare la posta elettronica – $ 13", $ aresult);
. '; '. implode ( '', $ aresult [0]). '
'.

Risultato: "4; 2USD, 2u.e., UE2, $ 13."

A proposito di logica non intenzionale

Regolari offerte espressioni PHP, così come altri strumenti, ma non è necessario applicare loro secondo le sue regole o utilizzare altre funzioni fornite modo sintassi minuscolo.

Possibile prima dell'inizio della ricerca necessaria per girare alla matrice, e il luogo dove si cerca, suddivisi in componenti in base a criteri precedenti. Solo un paio di esplodere () e implode (), spesso semplifica e velocizza la decisione.

Per esempio, come risultato di un lavoro preliminare formato un array di stringhe (dati) nel distretto di quante patate raccolti ogni villaggio: Unknown ImyaDerevnya e volume raccolto, e se il paese gestisce diverse aziende in un array di stringhe è ImyaDerevnya.ImyaPredpriyatie e di valore attraverso "; " e così via tutte le imprese. Calcolare la quantità totale raccolta in questo caso non sarà possibile, ma se lo fai impode ( ";", $ aResult), sarà una lunga fila, in cui la coppia – ImyaDerevnya / ImyaDerevnya.ImyaPredpriyatie – una collezione di dimensioni – sarà trasferito tramite il ";". Fare un rovescio sul risultante, esplodere ( ";", $ aresult) – una matrice di tutti, che ha raccolto e come viene raccolto, e poi rimuovendo le linee da tutti i caratteri non numerici, abbiamo solo numeri, la cui somma è il volume totale raccolto.

In questo esempio, l'espressione regolare in PHP non permette di guardare troppo, sono l'estratto semplice e conveniente i valori numerici desiderati. Rapido ed efficiente, non importa quanto tempo possa essere i nomi dei villaggi e delle imprese. Questa soluzione non è ideale, ma dimostra che non sempre seguono le regole dovrebbero essere. Spesso è possibile ottenere la desiderata in modo anomalo.

Astraendo dal lato tecnico, la codifica

La sintassi dell'algoritmo non dice come appare nella realtà. Tuttavia, fornendo la stessa codifica della pagina, e le file di script (che si cerca in cui le immagini) può immergersi nel problema è suoi aspetti tecnici.

Uno deve non solo sapere cosa cercare, ma dove farlo, quando, quanto, cosa cambiare e come. Formalmente PHP espressioni regolari eseguiti come un meccanismo completo di tutte le funzionalità del proprio, ma per molte ragioni, la realizzazione dei suoi omologhi in molte lingue diverse. Come regola generale, prima di spostare un particolare modello in un particolare ambiente strumento per un compito specifico, è necessario effettuare l'adattamento di alta qualità, verificare la presenza di tutte le possibili opzioni per i dati di origine.

Anche se si utilizza la propria esperienza nello sviluppo in PHP, le espressioni regolari, esempi, modelli e design richiede un controllo accurato. Dinamicamente cambiando la funzionalità di lingua, sintassi e tempo di esecuzione.

La struttura e il contenuto di un template

Ciò che è stato già scritto, sotto forma di una combinazione di funzioni di ricerca, condizionali, le operazioni di sostituzione, inserire, cancellare, è una stringa di caratteri secondo certe regole – modello di espressione regolare. Infatti, una quantità significativa è codificato in un certo modo ed eseguito da norme specifiche.

Così come è impossibile fare qualsiasi operatore lingua di debug, non è possibile eseguire il debug delle espressioni regolari, questo processo può emulare solo. Come regola generale adottato versione: opere – non funziona. La sintassi è molto semplice, anche se la sua percezione, soprattutto all'inizio, è molto difficile.

Un esempio di una semplice espressione

In una semplice forma di realizzazione, il modello corrisponda alla stringa:

$ CContents = preg_match ( "/ asdf / i", "asdf", $ aresult). '; '. implode ( '', $ aresult).

Il risultato sarà "1; asdf", dato che la funzione completa il suo funzionamento al primo incontrato un template matching. Il risultato sarà lo stesso, se guardiamo alla linea "aaaasdf" in linea "zzzasdfvvv". Se si specifica il primo e / o ultimo carattere, il risultato sarebbe chiaro:

$ CContents = preg_match ( "/ ^ asdf / i", "asdf", $ aresult). '; '. implode ( '', $ aresult). '
';
$ CContents. = preg_match ( "/ asdf $ /", "asdf", $ aresult). '; '. implode ( '', $ aresult). '
'.

Il risultato sarà: 1; asdf1; asdf.

I simboli "*" e "$" indica da dove cominciare e il pattern di finale. Risultato funzione preg_match – il numero di partite, può essere 0, 1, o falso, se viene rilevato un errore. La terza opzione – un array – immessi trovati elemento. Nel caso di utilizzo di funzioni preg_match_all () ricerca continua fino alla linea di fondo.

$ CContents = preg_match ( "/ asdf / i", "asdf123asdf456asdf789", $ aresult). '; '. implode ( '', $ aresult). '
';
$ CContents. = preg_match_all ( "/ asdf / i", "asdf123asdf456asdf789", $ aresult). '; '. implode ( '', $ aresult [0]). '
'.

risultato:

1; asdf
3; asdf, asdf, asdf.

Se non si utilizza istruzioni speciali, ogni personaggio stesso e il suo posto definisce, indipendentemente dalla codifica di linea e codifica modello. Il programmatore deve assicurare che la codifica di questi elementi fosse corretta in relazione reciproca e codifica della pagina.

funzioni PHP per lavorare con le espressioni regolari

Le espressioni regolari per PHP rappresentano una stringa di caratteri registrata in un certo modo. Di solito, per analogia con altri linguaggi di programmazione, sono scritti nei simboli "/" … "/" e messo tra virgolette, è possibile utilizzare singola o doppia a seconda dell'algoritmo.

La principale funzione php preg partita espressioni regolari utilizza sia corrispondenza motivo e lo arresta alla prima posizione, una sua variante con un suffisso _all individua tutte le corrispondenze, ed emette la matrice stessa. preg funzione di sostituzione sostituisce ogni partita un modello, si può lavorare con gli array, consentendo la progettazione di ricerca ed effettuare la sostituzione di una varietà di opzioni.

opzioni per lavorare con le espressioni regolari possono essere sviluppate utilizzando la funzione preg_replace_callback che non tiene il testo di sostituzione, e il nome della funzione, che effettuerà tale sostituzione. Oltre al valore pratico è possibile implementare meccanismi di verificare modello, che lo sviluppo e il debugging delle ultime gioca un ruolo significativo.

Ambito di espressioni regolari

Dal momento lingue ipertestuali sono formalizzati informazioni in misura maggiore sono il materiale di partenza. Sviluppato un gran numero di modelli e disegni che consentono di elaborare grandi quantità di dati in modo efficiente. Una parte significativa di questo lavoro viene eseguito meccanismi incorporati nei vari sistemi di gestione dei contenuti (CMS).

Non a caso, molti CMS diventano de facto standard di cantiere, e di essere accompagnati dalle società (aggiornato) software, che non rendono necessario procedere allo sviluppo di modelli da solo. Tuttavia, al di fuori di tali sistemi ha esperienza con le espressioni regolari è molto utile.

Le espressioni regolari e le informazioni reali

Un'importante area di applicazione delle espressioni regolari in librerie PHP formato il PHPOffice avvento. Lavorare con i documenti, fogli di calcolo, e ha sempre avuto importanti e lo standard OOXML è possibile non solo per smantellare i documenti reali, ma anche per modellare il loro programma.

Grazie allo sviluppo di ipertesto e PHP, in particolare, v'è una reale opportunità per automatizzare la "produzione" di documenti "modulo standard", ad esempio, le fatture per il pagamento, i rapporti, i piani aziendali, e altri oggetti di informazione, la struttura ed i contenuti sono in realtà suscettibili di formalizzazione e l'automazione.

In connessione con l'applicazione per descrivere il processo di sviluppo del linguaggio OOXML di espressioni regolari è molto diversa dalla lavorazione tradizionale con linguaggi di markup HTML e CSS, in primo luogo. Il documento attuale, tranne marcatura e in aggiunta al contenuto effettivo ha un sacco di dettagli. Ad esempio, un documento che è stato creato automaticamente dal programma, avrà un contenuto forte e preciso. Documento formato o la persona trattata, avrà un contenuto, è stato dipinto sopra una pluralità di tag. Qualsiasi lavoro con il documento porta al fatto che la semantica di esso può essere uno, ma dipinta in diverse quantità in diversi modelli.

informazioni naturali e la situazione

Una persona sempre interessato alla soluzione del problema, che è organizzato informazioni e, di conseguenza, sarà data la stessa informazione. Presentando la dichiarazione del problema, sotto forma di un documento, una persona riceve una specifica la semantica, che è nella specifica di esperti (modifica, chiarirne la terminologia, cancellare, modificare) non solo porta a più versioni di un documento, ma anche per le sue versioni con contenuti diversi.

In particolare, il compito stabilito dalla frase "Solve uranenie piazza" dopo la modifica sarà simile a questa: "Per risolvere un'equazione di secondo grado." Se in un primo momento il primo errore è stato corretto, e poi la seconda, quindi le informazioni naturale in stile OOXML potrebbe essere simile: "[risolto] [] [square] [e] [] [applausi] [b] [nenie]", ma questo non lo fa Garantiamo che questo è l'attività apparirà nella OOXML tag (tra parentesi emulare parentesi tag).

Per mettere insieme le informazioni possono essere facilmente dopo ogni compito del processo di montaggio, ma ogni volta che questa procedura sarà effettuata mediante vari algoritmi. Le espressioni regolari, come una sorta di strumento di formalizzazione di problemi di informazione sono diventati, a tutti gli effetti, sentieri per passeggiate vicino le strutture formali di ipertesto alle informazioni naturale.