在 中less,您能否使用/包含回车符和换行符的模式进行搜索?我知道您的模式可以使用一行结束$(来自How do I include newlines in a search in less?),但我需要该模式来匹配跨越多行的文本。
我试过\n,但只搜索n字符。
小智 8
不确定如何在 中执行此操作less,但您可以在 中完成相同的操作vim。
http://vim.wikia.com/wiki/Search_across_multiple_lines
/PATTERN1\\_.\\{-}PATTERN2
Run Code Online (Sandbox Code Playgroud)
原子\\_.查找包括行尾在内的任何字符。多重\\{-}匹配尽可能少。
不可能跨越行边界进行匹配,因为搜索功能 in 一次less在单个换行符分隔的行上运行。无论系统正则表达式实现如何(GNU、POSIX、PCRE 等),情况都是如此。
请注意,我找不到用于主线开发的官方源代码库 less,但出于代码审查的目的,下面的链接来自 FreeBSD 贡献树。
有关搜索操作的实现,请参见search.c:search_range()。其中的循环调用line.c:forw_raw_line()来检索下一个以换行符分隔的内容块。该块被传递到match.c:match_pattern()执行搜索模式(正则表达式)。
要跨多行匹配,您需要使用不同的工具。一种选择是进入您的编辑器并按照其他人的建议使用其搜索功能。您可以通过按vin来调用编辑器less。