⊗ppPmRgVA 258 of 447 menu

Eteenpäin katselu PHP:n säännöllisissä lausekkeissa

Joskus on ratkaistava tämän tyyppinen tehtävä: löydä merkkijono 'aaa' ja korvaa se merkkijonolla '!', vain jos 'aaa':n jälkeen on 'x', mutta itse 'x':tä ei tule korvata. Jos yritämme ratkaista tehtävän 'suoraan', emme onnistu:

<?php preg_replace('#aaax#', '!', 'aaax'); // tulisi '!', pitäisi olla '!x' ?>

Tehtävän ratkaisemiseksi tarvitaan tapa sanoa, että 'x':ää ei tulisi korvata. Tämä tehdään erikoisilla sulkeilla (?= ), jotka vain katsovat, mutta eivät ota mukaansa.

Näitä sulkeita kutsutaan positiiviseksi eteenpäin katseluksi. Positiivinen - koska 'x':n (meidän tapauksessamme) on oltava - vain silloin korvaus tapahtuu.

Sovelletaan näitä sulkeita tehtävämme ratkaisemiseksi:

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

On olemassa myös negatiivinen eteenpäin katselu - (?! ) - se puolestaan kertoo, että jotain ei pitäisi olla. Seuraavassa esimerkissä korvaus tapahtuu vain, jos 'aaa':n jälkeen ei ole 'x':

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

Annettu merkkijono, joka sisältää funktion nimiä:

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

Hanki taulukko funktioiden nimistä merkkijonosta.

Annettu merkkijono tagilla:

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

Hanki taulukko tämän tagin attribuuttien nimistä.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää