⊗ppPmRgVA 258 of 447 menu

Προβολή προς τα εμπρός στις κανονικές εκφράσεις της PHP

Μερικές φορές χρειάζεται να λύσουμε ένα πρόβλημα του τύπου: βρες τη συμβολοσειρά 'aaa' και αντικατέστησέ την με '!', αλλά μόνο αν μετά την 'aaa' ακολουθεί 'x', ενώ το ίδιο το 'x' να μην αντικαθίσταται. Αν προσπαθήσουμε να λύσουμε το πρόβλημα 'κατευθείαν', δεν θα τα καταφέρουμε:

<?php preg_replace('#aaax#', '!', 'aaax'); // θα γίνει '!', αλλά πρέπει '!x' ?>

Για να λυθεί το πρόβλημα χρειάζεται ένας τρόπος να πούμε, ότι το 'x' δεν πρέπει να αντικατασταθεί. Αυτό γίνεται χρησιμοποιώντας ειδικές αγκύλες (?= ), που απλά κοιτούν, αλλά δεν παίρνουν μαζί τους.

Αυτές οι αγκύλες ονομάζονται θετική προβολή προς τα εμπρός. Θετική - γιατί το 'x' (στην περίπτωσή μας) πρέπει να υπάρχει - μόνο τότε θα πραγματοποιηθεί η αντικατάσταση.

Ας εφαρμόσουμε αυτές τις αγκύλες για να λύσουμε το πρόβλημά μας:

<?php preg_replace('#aaa(?=x)#', '!', 'aaax'); // επιστρέφει '!x' ?>

Υπάρχει και αρνητική προβολή προς τα εμπρός - (?! ) - αυτή, αντίθετα, λέει ότι κάτι δεν πρέπει να υπάρχει. Στο επόμενο παράδειγμα η αντικατάσταση θα πραγματοποιηθεί, μόνο αν μετά την 'aaa' δεν ακολουθεί 'x':

<?php preg_replace('#aaa(?!x)#', '!', 'aaab'); // επιστρέφει '!b' ?>

Δίνεται μια συμβολοσειρά, που περιέχει ονόματα συναρτήσεων:

<?php $str = 'func1() func2() func3()'; ?>

Λάβετε έναν πίνακα με τα ονόματα των συναρτήσεων από τη συμβολοσειρά.

Δίνεται μια συμβολοσειρά με μια ετικέτα:

<?php $str = '<a href="" class="eee" id="zzz">'; ?>

Λάβετε έναν πίνακα με τα ονόματα των χαρακτηριστικών αυτής της ετικέτας.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη