模块课程(3/4)
否定:`[^...]`
Placing a caret ^ as the first character inside brackets
inverts the class: it matches any character except those listed.
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).
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
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
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
Match sequences of one or more characters, explicitly excluding whitespace and commas.
显示提示
Use [^\s,] with the + quantifier.
3 次尝试后可用的解决方案