⊗jsSpREHHy 110 of 294 menu

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

Myślnik - też jest znakiem specjalnym wewnątrz [ ] (a na zewnątrz - nie). Jeśli potrzebujesz samego myślnika jako znaku - umieść go tam, gdzie nie zostanie zinterpretowany jako separator grup.

Dlaczego to ważne: możesz utworzyć grupę znaków, sam 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ę znaków pomiędzy : i @. W skład tej grupy wchodzą następujące znaki: ? < = > : ;

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

Jak z tym walczyć: umieść znak myślnika tam, gdzie na pewno nie zostanie zinterpretowany jako znak 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 znaki - dwukropek, myślnik i małpa @.

Przykład

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

let str = '1a2 1-2 1c2 1z2'; let res = str.replace(/1[a-z]2/g, '!');

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

'! 1-2 ! !'

Przykład

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

let str = '1a2 1-2 1c2 1z2'; let res = str.replace(/1[a\-z]2/g, '!');

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

'! ! 1c2 !'

Przykład

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

let str = '1a2 1-2 1c2 1z2'; let res = str.replace(/1[az-]2/g, '!');

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

'! ! 1c2 !'

Przykład

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

let str = 'axx Axx -xx @xx'; let res = str.replace(/[a-z-]xx/g, '!');

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

'! Axx ! @xx'

Przykład

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

let str = 'axx Axx -xx @xx'; let res = str.replace(/[a-zA-Z-]xx/g, '!');

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

'! ! ! @xx'

Przykład

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

let str = 'axx 9xx -xx @xx'; let res = str.replace(/[a-z-0-9]xx/g, '!');

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

'! ! ! @xx'

Zadania praktyczne

Dany jest ciąg:

let 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:

let 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ć