⊗ppPmRgSHy 238 of 447 menu

Trattino all'interno di set nelle espressioni regolari PHP

Il trattino è anch'esso un carattere speciale all'interno di [] (ma all'esterno - no). Se avete bisogno del trattino stesso come carattere - mettetelo dove non verrà interpretato come separatore di un intervallo.

Perché è importante: potreste creare un intervallo di caratteri senza accorgervene. Ad esempio, così - [:-@] - pensate di selezionare il due punti, il trattino e la chiocciola, ma in realtà ottenete un intervallo di caratteri tra : e @. In questo intervallo sono inclusi i seguenti caratteri: :, ;, ?, <, =, >.

Da dove vengono? Dalla tabella ASCII - il due punti ha un numero inferiore alla chiocciola - e si ottiene un intervallo. Cioè tutti gli intervalli sono determinati dalla tabella ASCII (volendo ci si può fare affidamento).

Come rimediare: mettete il carattere trattino dove sicuramente non verrà interpretato come carattere di intervallo, ad esempio, all'inizio o alla fine (cioè dopo [ o prima di ]).

Si può anche escape il trattino - in questo caso indicherà sé stesso indipendentemente dalla posizione. Ad esempio, invece di [:-@] scrivere [:\-@] - e non ci sarà più un intervallo, ma ci saranno tre caratteri - due punti, trattino e chiocciola @.

Esempio

Nel seguente esempio il modello di ricerca è questo: cifra 1, poi una lettera da 'a' a 'z', poi cifra 2:

<?php $str = '1a2 1-2 1c2 1z2'; $res = preg_replace('#1[a-z]2#', '!', $str); ?>

Di conseguenza nella variabile verrà memorizzato quanto segue:

'! 1-2 ! !'

Esempio

Ora escape il trattino. Di conseguenza il modello di ricerca è questo: cifra 1, poi lettera 'a', o trattino, o lettera 'z', poi cifra 2:

<?php $str = '1a2 1-2 1c2 1z2'; $res = preg_replace('#1[a\-z]2#', '!', $str); ?>

Di conseguenza nella variabile verrà memorizzato quanto segue:

'! ! 1c2 !'

Esempio

Si può semplicemente spostare il trattino, senza escapearlo:

<?php $str = '1a2 1-2 1c2 1z2'; $res = preg_replace('#1[az-]2#', '!', $str); ?>

Di conseguenza nella variabile verrà memorizzato quanto segue:

'! ! 1c2 !'

Esempio

Nel seguente esempio il modello di ricerca è questo: il primo carattere è una lettera minuscola o un trattino '-', poi due lettere 'x':

<?php $str = 'axx Axx -xx @xx'; $res = preg_replace('#[a-z-]xx#', '!', $str); ?>

Di conseguenza nella variabile verrà memorizzato quanto segue:

'! Axx ! @xx'

Esempio

Nel seguente esempio il modello di ricerca è questo: il primo carattere è una lettera minuscola, maiuscola o un trattino '-', poi due lettere 'x':

<?php $str = 'axx Axx -xx @xx'; $res = preg_replace('#[a-zA-Z-]xx#', '!', $str); ?>

Di conseguenza nella variabile verrà memorizzato quanto segue:

'! ! ! @xx'

Esempio

Si può posizionare il trattino tra due intervalli - lì sicuramente non creerà un altro intervallo:

<?php $str = 'axx 9xx -xx @xx'; $res = preg_replace('#[a-z-0-9]xx#', '!', $str); ?>

Di conseguenza nella variabile verrà memorizzato quanto segue:

'! ! ! @xx'

Problemi pratici

Data la stringa:

<?php $str = 'xaz xBz xcz x-z x@z'; ?>

Trovate tutte le stringhe secondo il seguente modello: lettera 'x', lettera maiuscola o minuscola o trattino, lettera 'z'.

Data la stringa:

<?php $str = 'xaz x$z x-z xcz x+z x%z x*z'; ?>

Trovate tutte le stringhe secondo il seguente modello: lettera 'x', poi o dollaro, o trattino o più, poi lettera 'z'.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta