⊗ppPmRgSHy 238 of 447 menu

Pomlčka uvnitř množin v regulárních výrazech PHP

Pomlčka - také speciální symbol uvnitř [] (zvenčí - ne). Pokud potřebujete samotnou pomlčku jako symbol - umístěte ji tam, kde nebude pochopená jako oddělovač skupiny.

Proč je to důležité: můžete vytvořit skupinu symbolů, aniž byste si toho všimli. Například, takto - [:-@] - myslíte si, že vybíráte dvojtečku, pomlčku a zavináč, ale ve skutečnosti vznikne skupina symbolů mezi : a @. Do této skupiny patří následující symboly: :, ;, ?, <, =, >.

Odkud se vzaly? Z tabulky ASCII - dvojtečka má nižší číslo než zavináč - a vzniká skupina. To znamená, že všechny skupiny jsou tvořeny podle tabulky ASCII (lze toho využít).

Jak s tím bojovat: umístěte symbol pomlčky tam, kde rozhodně nebude pochopen jako symbol skupiny, například na začátek nebo na konec (tedy za [ nebo před ]).

Pomlčku lze také escapovat - pak bude vždy představovat samu sebe bez ohledu na pozici. Například, místo [:-@] napsat [:\-@] - a skupina již nevznikne, budou tam tři symboly - dvojtečka, pomlčka a zavináč @.

Příklad

V následujícím příkladu je vzor hledání tento: číslice 1, poté písmeno od 'a' do 'z', poté číslice 2:

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

Výsledkem bude do proměnné zapsáno následující:

'! 1-2 ! !'

Příklad

Nyní pojďme escapovat pomlčku. Výsledkem bude vzor hledání tento: číslice 1, poté písmeno 'a', nebo pomlčka, nebo písmeno 'z', poté číslice 2:

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

Výsledkem bude do proměnné zapsáno následující:

'! ! 1c2 !'

Příklad

Lze jednoduše přemístit pomlčku, aniž byste ji escapovali:

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

Výsledkem bude do proměnné zapsáno následující:

'! ! 1c2 !'

Příklad

V následujícím příkladu je vzor hledání tento: první symbol - to jsou malá písmena nebo pomlčka '-', poté dvě písmena 'x':

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

Výsledkem bude do proměnné zapsáno následující:

'! Axx ! @xx'

Příklad

V následujícím příkladu je vzor hledání tento: první symbol - to jsou malá, velká písmena nebo pomlčka '-', poté dvě písmena 'x':

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

Výsledkem bude do proměnné zapsáno následující:

'! ! ! @xx'

Příklad

Pomlčku lze umístit mezi dvě skupiny - tam rozhodně nevytvoří další skupinu:

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

Výsledkem bude do proměnné zapsáno následující:

'! ! ! @xx'

Praktické úlohy

Je dán řetězec:

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

Najděte všechny řetězce podle následujícího vzoru: písmeno 'x', velké nebo malé písmeno nebo pomlčka, písmeno 'z'.

Je dán řetězec:

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

Najděte všechny řetězce podle následujícího vzoru: písmeno 'x', poté nebo dolar, nebo pomlčka nebo plus, poté písmeno 'z'.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout