Vim中的多行正则expression式支持
我注意到跨多行匹配的标准正则expression式语法是使用/ s,如下所示:
This is\nsome text /This.*text/s
这在Perl中可行,但在Vim中似乎不受支持。 相反,我必须更加具体:
/This[^\r\n]*[\r\n]*text/
我找不到为什么这个应该是什么原因,所以我想我可能只是错过了在vim帮助相关的位。
任何人都可以确认这种行为吗?
是的,Perl的//s
修饰符在Vim正则expression式中不可用。 有关详细信息,请参阅:h perl-patterns
,以及Vim和Perl正则expression式之间的其他差异列表。
相反,你可以使用\_.
,意思是“匹配包括换行符在内的任何单个字符”。 这比你有的短一点。 请参阅:h /\_.
。
/This\_.*text/