الانتقال إلى المحتوى الرئيسي
eLearner.app
الوحدة 5 · الدرس 3 من 419/32 في الدورة~8 min
دروس الوحدة (3/4)

النفي: `[^...]`

Placing a caret ^ as the first character inside brackets inverts the class: it matches any character except those listed.

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

[^aeiou] matches consonants, spaces, punctuation, digits\u2026 everything that is not a vowel.

Typical examples

  • [^\s] -- any "non-space" character (equivalent to \S).
  • [^0-9] -- anything that is not a digit (equivalent to \D).
  • [^"]+ -- "a sequence of characters that are not double quotes" (useful to extract content between quotes).
Code
Pattern: "([^"]+)"
Sample:  Il libro "Il nome della rosa" e' famoso.

The group ([^"]+) captures everything between quotes stopping before the next ": it is a classic trick to avoid the greedy-vs-lazy problem.

Negation and alternative wildcards

The negated class [^...] consumes exactly one character that is NOT part of the listed set. It is a powerful tool to prevent the engine from running past critical delimiters, avoiding ReDoS caused by infinite backtracking loops.

Try it

تمرين#regex.m5.l3.e1
المحاولات: 0جارٍ التحميل…

Extract the content of every string between double quotes, without capturing the quotes themselves.

جارٍ تحميل المحرر…
إظهار التلميح

Replace .+ with [^"]+: this way the match stops at the next quote.

الحل متاح بعد 3 من المحاولات

Review exercise

تمرين#regex.m5.l3.e2
المحاولات: 0جارٍ التحميل…

Find every word made up ONLY of consonants (no vowels, no digits, no symbols).

جارٍ تحميل المحرر…
إظهار التلميح

Inside the brackets you can combine vowel negation with \\W (non-word) and \\d (digits).

الحل متاح بعد 3 من المحاولات

Additional challenge

تمرين#regex.m5.l3.e3
المحاولات: 0جارٍ التحميل…

Match sequences of one or more characters, explicitly excluding whitespace and commas.

جارٍ تحميل المحرر…
إظهار التلميح

Use [^\s,] with the + quantifier.

الحل متاح بعد 3 من المحاولات