Negated class
The class [^ ] matches any character that isn't listed.
#!/bin/sh
: "If you use [^..] instead of [..],
the class matches any character that isn't listed
For example [^1-6]
matches a character that's not 1 through 6
Regex [^x]
Doesn't mean 'match unless there is an x'
but rather 'match if there is something that is not x'
The ^ used here is the same as start-of-line caret
But the meaning is completely different
q[^u] matches Iraqi, Iraqian
q[^u] doesn't match Qantas, because it called for a lower case q
q[^u] doesn't match Iraq, because q is at the end
newline \n character is not [^u]
"
TXT='Iraqi Iraqian miqra liquor qasida qintar qoph zaqqum Qantas Iraq'
echo $TXT | grep 'q[^u]' > result.txt
echo $TXT | grep 'q[^u]' --colour
Iraqi Iraqian miqra liquor qasida qintar qoph zaqqum Qantas Iraq
Javascript
/**
* Negated class [^ ]
*/
s = 'Iraqi Iraqian miqra liquor qasida qintar qoph zaqqum Qantas Iraq'
p = /(\w+)?q[^u](\w+)?/g
m = s.match(p)
console.log(m) // Iraqi, Iraqian, miqra, qasida, qintar, qoph, zaqqum
Last update: 414 days ago