Vim中的多行正则expression式支持

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

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

这在Perl中可行,但在Vim中似乎不受支持。 相反,我必须更加具体:

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

我找不到为什么这个应该是什么原因,所以我想我可能只是错过了在vim帮助相关的位。

任何人都可以确认这种行为吗?

One Solution collect form web for “Vim中的多行正则expression式支持”

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

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

 /This\_.*text/ 
  • 提取R中所有圆括号内的信息
  • 正则expression式来获得Javascript中的括号之间的string
  • 从PHP中的文本中提取url
  • 对cricinfo记分卡的htmlparsing
  • 正则expression式来从string中删除所有特殊字符?
  • 内部.NET Framework数据提供程序错误1025
  • 正则expression式。匹配整个单词
  • 将preg_replace()e修饰符replace为preg_replace_callback
  • Javascriptdate正则expression式DD / MM / YYYY
  • replace一个string中的所有匹配项
  • 使用正则expression式来查找/replaceNSString中的子string