⊗ppPmRgSHy 238 of 447 menu

Myślnik wewnątrz zestawów w wyrażeniach regularnych PHP

Myślnik - również jest symbolem specjalnym wewnątrz [] (a na zewnątrz - nie). Jeśli potrzebujesz samego myślnika jako symbolu - umieść go tam, gdzie nie zostanie zinterpretowany jako separator grupowy.

Dlaczego to ważne: możesz utworzyć grupę symboli, samemu tego nie zauważając. Na przykład, tak - [:-@] - myślisz, że wybierasz dwukropek, myślnik i małpę, a w rzeczywistości otrzymujesz grupę symboli pomiędzy : i @. W skład tej grupy wchodzą następujące symbole: :, ;, ?, <, =, >.

Skąd się wzięły? Z tabeli ASCII - dwukropek ma mniejszy numer niż małpa - i otrzymujemy grupę. Oznacza to, że wszystkie grupy powstają na podstawie tabeli ASCII (w razie potrzeby można z tego korzystać).

Jak z tym walczyć: umieść symbol myślnika tam, gdzie na pewno nie zostanie zinterpretowany jako symbol grupy, na przykład na początku lub na końcu (czyli po [ lub przed ]).

Można również wyescapować myślnik - wtedy będzie on oznaczał sam siebie niezależnie od pozycji. Na przykład, zamiast [:-@] napisać [:\-@] - i grupy już nie będzie, a będą trzy symbole - dwukropek, myślnik i małpa @.

Przykład

W następnym przykładzie wzorzec wyszukiwania jest następujący: cyfra 1, następnie litera od 'a' do 'z', następnie cyfra 2:

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

W rezultacie do zmiennej zostanie zapisane następujące:

'! 1-2 ! !'

Przykład

Teraz wyescapujmy myślnik. W rezultacie wzorzec wyszukiwania jest następujący: cyfra 1, następnie litera 'a', lub myślnik, lub litera 'z', następnie cyfra 2:

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

W rezultacie do zmiennej zostanie zapisane następujące:

'! ! 1c2 !'

Przykład

Można po prostu przesunąć myślnik, nie escapując go:

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

W rezultacie do zmiennej zostanie zapisane następujące:

'! ! 1c2 !'

Przykład

W następnym przykładzie wzorzec wyszukiwania jest następujący: pierwszy symbol - to małe litery lub myślnik '-', potem dwie litery 'x':

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

W rezultacie do zmiennej zostanie zapisane następujące:

'! Axx ! @xx'

Przykład

W następnym przykładzie wzorzec wyszukiwania jest następujący: pierwszy symbol - to małe, duże litery lub myślnik '-', potem dwie litery 'x':

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

W rezultacie do zmiennej zostanie zapisane następujące:

'! ! ! @xx'

Przykład

Można umieścić myślnik pomiędzy dwiema grupami - tam na pewno nie utworzy jeszcze jednej grupy:

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

W rezultacie do zmiennej zostanie zapisane następujące:

'! ! ! @xx'

Zadania praktyczne

Dany jest ciąg:

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

Znajdź wszystkie ciągi według następującego wzorca: litera 'x', duża lub mała litera lub myślnik, litera 'z'.

Dany jest ciąg:

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

Znajdź wszystkie ciągi według następującego wzorca: litera 'x', następnie lub dolar, lub myślnik lub plus, potem litera 'z'.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć