I know I can search for something matching a space with the POSIX bracket expression [[:space:]]
. Can I do a search for something not matching a space using a POSIX bracket expression? In particular, the characters it should match include letters, and parentheses ((
).
[[:graph:]]
looks somewhat vague:
[[:graph:]]
- Non-blank character (excludes spaces, control characters, and similar)
You confuse two things here: a bracket expression and a POSIX character class. The outer [...]
is a bracket expression, and it can be negated with a ^
that immediately follows [
. A POSIX character class is a [:
+name
+:]
construct that only works inside bracket expressions.
So, in your case, [[:space:]]
pattern is a bracket expression containing just 1 POSIX character class that matches a whitespace:
[
- opening a bracket expression
[:space:]
- a POSIX character class for whitespace]
- closing bracket of the bracket expression.To negate it, just add the ^
as in usual NFA character classes: [^[:space:]]
.
Note I deliberately differentiate the terms "bracket expression", "POSIX character class" and "character class" since POSIX and common NFA regex worlds adhere to different terminology.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With