首页 > 解决方案 > 使用 ag 进行多行正则表达式搜索

问题描述

我想通过带有 ag(the_silver_searcher) 的正则表达式在文件中的特定多行范围内“与”搜索文本。但是正则表达式模式不起作用。

遵循正则表达式模式效果很好。

ag --multiline -G "^.*\.(md|txt)$" -C 1 -S "foo(\n|.)*baz" ./dev_note.md

(输出)

40-
41:foo
42:bar
43:baz
44-

但是遵循正则表达式模式将不会输出任何内容。(不匹配)

ag --multiline -G "^.*\.(md|txt)$" -C 1 -S "(?=(.|\n)*(foo))(?=(.|\n)*(baz))" ./dev_note.md

我也试过:ag --multiline -G "^.*\.(md|txt)$" -C 1 -S "(?=(.|\n)*(foo))(.|\n)*(?=(.|\n)*(baz))" ./dev_note.md

标签: regexag

解决方案


推荐阅读