Vim中的多行正则表达式支持

时间:2009-04-24 01:13:20

标签: regex vim

我注意到跨多行匹配的标准正则表达式语法是使用/ s,如下所示:

This is\nsome text
/This.*text/s

例如,这在Perl中有效,但在Vim中似乎不支持。相反,我必须更具体:

/This[^\r\n]*[\r\n]*text/

我找不到任何理由为什么会这样,所以我想我可能只是错过了vim帮助中的相关位。

任何人都可以通过这种或那种方式确认这种行为吗?

1 个答案:

答案 0 :(得分:165)

是的,Perl的//s修饰符在Vim正则表达式上不可用。有关详细信息,请参阅:h perl-patterns以及Vim和Perl正则表达式之间的其他差异列表。

相反,您可以使用\_.,这意味着“匹配任何单个字符,包括换行符”。它比你的有点短。请参阅:h /\_.

/This\_.*text/