Przejdź do głównej treści
eLearner.app
Moduł 5 · Lekcja 3 z 419/32 w kursie~8 min
Lekcje modułu (3/4)

Negacja: `[^...]`

Umieść daszek ^ jako pierwszy znak wewnątrz kwadratów odwraca klasę: dopasowuje dowolny znak z wyjątkiem wymienionych.

Code
Pattern: [^aeiou]
Sample:  ciao mondo
          ^   ^^  ^

[^aeiou] dopasowuje spółgłoski, spacje, znaki interpunkcyjne, cyfry\u2026 wszystko, co nie jest samogłoską.

Typowe przykłady

  • [^\s] -- dowolny znak inny niż spacja (odpowiednik \S).
  • [^0-9] -- cokolwiek innego niż cyfra (odpowiednik \D).
  • [^"]+ -- "ciąg znaków niebędący cudzysłowem" (przydatne w przypadku wyodrębnij treść w cudzysłowie).
Code
Pattern: "([^"]+)"
Sample:  Il libro "Il nome della rosa" e' famoso.

Grupa ([^"]+) umieszcza wszystko w cudzysłowie zatrzymując się przed następnym ": to klasyczny trik pozwalający uniknąć problemu chciwy kontra leniwy.

Negacja i alternatywne symbole wieloznaczne

Zanegowana klasa [^...] zużywa dokładnie jeden znak, który NIE należy do wymienionego zestawu. Jest to doskonałe narzędzie zapobiegające zużywaniu przez silnik krytycznych ograniczników, zapobiegając ReDoS z powodu nieskończonych prób.

Spróbuj sam

Ćwiczenie#regex.m5.l3.e1
Próby: 0Ładowanie...

Estrai il contenuto di ogni stringa tra doppi apici, senza catturare gli apici stessi.

Ładowanie edytora...
Pokaż wskazówkę

Sostituisci .+ con [^"]+: in questo modo il match si ferma al prossimo apice.

Rozwiązanie dostępne po 3 próbach

Przejrzyj ćwiczenie

Ćwiczenie#regex.m5.l3.e2
Próby: 0Ładowanie...

Trova tutte le parole composte SOLO da consonanti (niente vocali, niente cifre, niente simboli).

Ładowanie edytora...
Pokaż wskazówkę

Dentro le quadre puoi combinare negazione di vocali con \\W (non-parola) e \\d (cifre).

Rozwiązanie dostępne po 3 próbach

Dodatkowe wyzwanie

Ćwiczenie#regex.m5.l3.e3
Próby: 0Ładowanie...

Matcha sequenze di uno o più caratteri escludendo esplicitamente spazi vuoti e virgole.

Ładowanie edytora...
Pokaż wskazówkę

Usa [^\s,] con il quantificatore +.

Rozwiązanie dostępne po 3 próbach