gpt4 book ai didi

regex - 使用 perl 作为更好的 grep 来匹配使用单行模式 m/RE/s 的多行

转载 作者:行者123 更新时间:2023-12-04 18:10:45 24 4
gpt4 key购买 nike

我正在尝试 grep 表达式(比如 BEGINEND )之间的文本,这些文本可能与以下内容不在同一行:

perl -wln -e 'm/BEGIN.+END/s and print;' < file.txt

请注意,因为 s修饰符(在 m/RE/s 中), "."允许匹配换行符(以及其他任何内容)。

这让模式可以将特定顺序的单词与它们之间的任何内容进行匹配(即模式 BEGIN 在一行上,而模式 END 在下面几行)。
如果两个模式在同一条线上,这可以正常工作,但当它跨越多条线时就不行了。我在这里缺少什么?

最佳答案

其实我确实找出了缺失的部分!我需要使用 -0777搜索整个文件作为记录的选项并使用 print $& 打印匹配的表达式反而:

perl -wln -0777 -e 'm/BEGIN.+END/s and print $&;' < file.txt

关于regex - 使用 perl 作为更好的 grep 来匹配使用单行模式 m/RE/s 的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14925902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com