Search code examples
regexperlcharacter-class

How can I exclude some characters from a class?


Say I want to match a "word" character (\w), but exclude "_", or match a whitespace character (\s), but exclude "\t". How can I do this?


Solution

  • Use a negated class including \W or \S.

    /[^\W_]/  # anything that's not a non-word character and not _
    /[^\S\t]/ # anything that's not a non-space character and not \t