⊗ppPmRgVA 258 of 447 menu

Lookahead dans les expressions régulières PHP

Parfois, il faut résoudre un problème de ce type : trouver la chaîne 'aaa' et la remplacer par '!', mais seulement si après 'aaa' se trouve 'x', sans remplacer 'x' lui-même. Si nous essayons de résoudre le problème directement, nous n'y arriverons pas :

<?php preg_replace('#aaax#', '!', 'aaax'); // donnera '!', mais il faut '!x' ?>

Pour résoudre le problème, il faut un moyen de dire que 'x' ne doit pas être remplacé. Cela se fait à l'aide de parenthèses spéciales (?= ), qui vérifient simplement sans capturer.

Ces parenthèses sont appelées lookahead positif. Positif - car 'x' (dans notre cas) doit être présent - alors seulement le remplacement aura lieu.

Utilisons ces parenthèses pour résoudre notre problème :

<?php preg_replace('#aaa(?=x)#', '!', 'aaax'); // retournera '!x' ?>

Il existe aussi le lookahead négatif - (?! ) - il dit, au contraire, que quelque chose ne doit pas être présent. Dans l'exemple suivant, le remplacement aura lieu seulement si après 'aaa' ne se trouve pas 'x' :

<?php preg_replace('#aaa(?!x)#', '!', 'aaab'); // retournera '!b' ?>

Une chaîne contenant des noms de fonctions est donnée :

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

Obtenez un tableau des noms de fonctions à partir de la chaîne.

Une chaîne avec une balise est donnée :

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

Obtenez un tableau des noms des attributs de cette balise.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser