Я с трудом пытаюсь сопоставить строки с одинарными или двойными кавычками с помощью механизма регулярных выражений Vim.
Проблема в том, что я назначаю регулярное выражение переменной, а затем использую его для воспроизведения с matchlist
.
Например, давайте предположим, что я знаю, что я нахожусь в строке, содержащей строку в кавычках, и хочу сопоставить ее:
let regex = '\v"(.*)"'
Это будет работать, чтобы соответствовать чему-либо, чтодвойные кавычки.Точно так же это будет соответствовать одинарные строки в кавычках:
let regex = "\v'(.*)'"
Но если я попытаюсь использовать их оба, например:
let regex = '\v['|"](.*)['|"]'
или
let regex = '\v[\'|\"](.*)[\'|\"]'
Тогда Vimне знает, как с этим справиться, потому что думает, что некоторые кавычки не закрываются в действительном определении переменной, и портит регулярное выражение.
Что было бы лучшим способом отловить одинарные или двойные кавычкистроки с регулярным выражением?
Возможно (возможно!) Я упускаю что-то действительно простое, чтобы можно было использовать обе кавычки и не беспокоиться о окружающих кавычках для фактического регулярного выражения.
Примечаниечто я предпочитаю одинарные кавычки для регулярного выражения, потому что таким образом мне не нужно использовать двойную обратную косую черту для экранирования.