Подтвердить что ты не робот

Регулярное выражение Vim с метасимволами внутри скобки

Как вы можете искать метасимвол или другой символ в регулярном выражении vim?

Пример: (Я бы хотел, чтобы это соответствовало метасимволу '\ w' или символу '-' 1 или более раз

[-\w]\+

Но это регулярное выражение не работает, как я надеялся. Он соответствует только -, w и. Я пытался избежать "\", но это не работает.

Я просмотрел документацию vim, но примера нет.

4b9b3361

Ответ 1

Внутри коллекции вы должны использовать специальные классы символов. Следующее выражение эквивалентно вашему:

[-_[:alnum:]]\+

Проверьте :h [:alnum:] (и последующие строки) для полного списка поддерживаемых классов.

Ответ 2

\%(\w\|-\)*

Используя группу \%(, поэтому ничего не фиксируется. \| для чередования между \w и -

или с очень магии, с \v

\v%(\w|-)*

Ответ 3

Существует плагин под названием eregex.vim, который переводится с PCRE на синтаксис Vim, расширяя [\w] до [0-9A-Za-z_], среди многих других вещь, что он делает. Для достижения этого перевода требуется более тысячи строк vim!