#regex #vim
#регулярное выражение #vim
Вопрос:
Я пытаюсь написать выражение fold, но я не могу заставить регулярное выражение работать.
Строка, которую я хочу проверить, и регулярное выражение являются:
# -- Heading 1 --
^.*-{2}s([_a-zA-Z0-9]s*) s-{2}$
какой синтаксис я использую для выполнения проверки?
Я пробовал: (похоже, не сработало)
if match(line , "v regex") >= 0
if line =~ "v regex"
Ответ №1:
Вы можете использовать либо match()
, либо =~
, но регулярное выражение неверно.
Есть о чем догадываться, поскольку я не знаю всех потенциальных входных данных, но я думаю, вы имели в виду:
^.*-{2}s%([_a-zA-Z0-9] s) -{2}$
Или немного другой вариант с использованием символьных классов:
^v.*-- [_[:alnum:][:blank:]] --$
Или, возможно, с использованием отрицаемой коллекции (соответствующей любому символу, кроме -
):
^v# -- [^-] --$
Сходите с ума!
Комментарии:
1. Спасибо. Я перепробовал все ваши регулярные выражения, но они также не сработали. Затем я понял, что проблема заключалась в том, что я заключал их в двойные кавычки. Изменил их на single, и thew отлично сработал.