⊗ppPmRgSHy 238 of 447 menu

Tavuviiva joukoissa PHP:n säännöllisissä lausekkeissa

Tavuviiva on myös erikoismerkki []-sisällä (mutta ulkopuolella - ei). Jos tarvitset tavuviivaa itsessään symbolina - aseta se paikkaan, jossa sitä ei tulkita ryhmän erottajaksi.

Miksi tämä on tärkeää: voit luoda merkkiryhmän huomaamatta sitä. Esimerkiksi näin - [:-@] - luulet valitsevasi kaksoispisteen, tavuviivan ja @-merkin, mutta itse asiassa saat merkkiryhmän väliltä : ja @. Tähän ryhmään kuuluvat seuraavat merkit: :, ;, ?, <, =, >.

Mistä ne ovat peräisin? ASCII-taulukosta - kaksoispisteellä on pienempi numero kuin @-merkillä - ja näin muodostuu ryhmä. Eli kaikki ryhmät muodostuvat ASCII-taulukon mukaan (halutessasi tätä voidaan käyttää hyväksi).

Miten tämän kanssa toimitaan: aseta tavuviiva paikkaan, jossa sitä ei varmasti tulkita ryhmäsymboliksi, esimerkiksi alussa tai lopussa (eli [-sulun jälkeen tai ennen ]-sulkua).

Voit myös escapeta tavuviivan - silloin se tarkoittaa itseään riippumatta asemasta. Esimerkiksi kirjoita [:\-@] [:-@]-sijaan - eikä ryhmää enää ole, vaan on kolme merkkiä - kaksoispiste, tavuviiva ja @-merkki.

Esimerkki

Seuraavassa esimerkissä hakumalli on seuraava: numero 1, sitten kirjain 'a':sta 'z':aan, sitten numero 2:

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

Tuloksena muuttujaan kirjoitetaan seuraava:

'! 1-2 ! !'

Esimerkki

Escapeetaan nyt tavuviiva. Tuloksena hakumalli on seuraava: numero 1, sitten kirjain 'a', tai tavuviiva, tai kirjain 'z', sitten numero 2:

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

Tuloksena muuttujaan kirjoitetaan seuraava:

'! ! 1c2 !'

Esimerkki

Voit yksinkertaisesti siirtää tavuviivan paikkaa escapettamatta sitä:

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

Tuloksena muuttujaan kirjoitetaan seuraava:

'! ! 1c2 !'

Esimerkki

Seuraavassa esimerkissä hakumalli on seuraava: ensimmäinen merkki on pienaakkonen tai tavuviiva '-', sitten kaksi kirjainta 'x':

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

Tuloksena muuttujaan kirjoitetaan seuraava:

'! Axx ! @xx'

Esimerkki

Seuraavassa esimerkissä hakumalli on seuraava: ensimmäinen merkki on pienaakkonen, suuraakkonen tai tavuviiva '-', sitten kaksi kirjainta 'x':

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

Tuloksena muuttujaan kirjoitetaan seuraava:

'! ! ! @xx'

Esimerkki

Voit sijoittaa tavuviivan kahden ryhmän väliin - siellä se varmasti ei vielä luo toista ryhmää:

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

Tuloksena muuttujaan kirjoitetaan seuraava:

'! ! ! @xx'

Käytännön tehtävät

Annettu merkkijono:

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

Etsi kaikki merkkijonot seuraavan mallin mukaan: kirjain 'x', suuri tai pieni kirjain tai tavuviiva, kirjain 'z'.

Annettu merkkijono:

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

Etsi kaikki merkkijonot seuraavan mallin mukaan: kirjain 'x', sitten joko dollarimerkki, tavuviiva tai plusmerkki, sitten kirjain 'z'.

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ää