如何检查字符串是否与vim中的模式匹配

时间:2019-03-26 22:06:00

标签: regex vim

我正在尝试编写一个折叠表达式,但是我无法使正则表达式正常工作。

我要检查的字符串和正则表达式为:

# -- Heading 1 --
^.*-{2}\s([\_a-zA-Z0-9]\s*)+\s-{2}$

我使用哪种语法进行检查? 我尝试过:(似乎不起作用)

if match(line , "\v regex") >= 0 if line =~ "\v regex"

1 个答案:

答案 0 :(得分:2)

您可以使用match()=~,但是正则表达式是错误的。

有很多猜测,因为我不知道所有潜在的输入,但是我想你的意思是:

^.*-\{2}\s\%([_a-zA-Z0-9]\+\s\)\+-\{2}$

或使用字符类的稍有不同的变体:

^\v.*-- [_[:alnum:][:blank:]]+--$

或者使用否定的集合(匹配-以外的任何字符):

^\v# -- [^-]+ --$

疯狂!