En Vim, la clase de caracteres \scoincide con cualquier carácter de espacio en blanco. Cuando estoy usando esos caracteres especiales en grupos, por ejemplo [\s\w], no coincide con ningún espacio en blanco o carácter de palabra, sí coincide con so w.
¿Cómo se usan las clases de caracteres dentro de los grupos?
regular-expression
John HK
fuente
fuente

[[:space:][:alnum:]_]se puede usar para aproximar la colección de\sy\w.Respuestas:
Eso no es un grupo, es un rango, y en Vim no puedes usar clases de caracteres (aunque es posible en otras implementaciones de expresiones regulares, por ejemplo, en python ). Tendrás que usar una alternancia en su lugar:
o:
(o la solución propuesta por Peter Lewerin ).
fuente
\sen una clase de caracteres. La implementación de expresiones regulares de Vim ha tomado esa decisión, pero otras implementaciones le permiten usar[\s].A diferencia de algunas implementaciones de motores de expresión regular, Vim's no parece admitir esa notación (
[\s\w]) en colecciones. Sin embargo, se pueden usar expresiones de clase de caracteres POSIX .[:blank:]es el mismo que\s.[:space:]coincide con una mayor cantidad de caracteres de espacio en blanco que\shace, y parece ser equivalente a\_s.[:alnum:]aproxima\w, pero no coincide con el guión bajo (_).Entonces la colección que deseabas podría escribirse como
[[:blank:][:alnum:]_]o[[:space:][:alnum:]_].No he verificado esto probando, pero está documentado en
:h regexp,:h /character-classes, y:h /collection.Nota de portabilidad: en otros motores regex,
\snormalmente es lo mismo que[:space:](o\_s) en Vim.fuente