Я использую очень упрощенное регулярное выражение в Vim, чтобы найти римские цифры в текстовом файле. Я просто запускаю команду:
:/^[MDCLXVI]+$
Это дает мне следующую ошибку:
E486: Pattern not found: ^[MDCLXVI]+$
Это мой файл:
I
II
III
IV
V
XIII
MVIII
Наверное, я делаю что-то очень глупое. Но это, кажется, не работает для меня.
Кажется, это работает. Хотя я всегда использовал обратную косую черту для символьных литералов.
это связано с «магическим» режимом Vim по умолчанию. см. здесь: vim.fandom.com/wiki/…





Вам нужно будет избежать +, если вы не находитесь в режиме 'магия', поэтому ваши варианты (используя замену s) для примера:
:%s/^[MDCLXVI]\+$/g
Или используйте \v для магического режима (на самом деле я обычно просто оставляю это по умолчанию, так как это немного упрощает запоминание того, какие из них нужно экранировать, а какие нет):
:%s/\v^[MDCLXVI]+$/g
Магический режим уже включен по умолчанию. \v для «очень волшебного» режима, а \M отключает волшебный режим.
поставить обратную косую черту перед
+