You are here

Vim does not respect certain regex character classes during substitutions

Submitted by Druss on Sat, 2013-06-01 07:48

Just now while attempting to perform a substitution in GVim, I found that the regex was not working as expected. Apparently, instead of matching all non-whitespace characters denoted by the shorthand class \S, the engine was matching the letter S instead, which was odd. It turns out that, as usual, I was the one at fault. What I was doing wrong was attempting to use the character class within [] groups. Thinking about it further, it is reasonably redundant to nest one class within another and therefore, understandable.

To conclude, using something like [\S] will not match non-whitespace characters. For that to happen, just use \S. For cases where you want to group multiple character classes together, use explicit [] groups rather than shorthand notation like \S or \w.