gpt4 book ai didi

正则表达式在 Perl 中不匹配,而在其他程序中匹配

转载 作者:行者123 更新时间:2023-12-02 15:55:43 26 4
gpt4 key购买 nike

我有以下字符串:

load Add 20 percent
to accommodate

我想去:

load Add 20 percent to accommodate

例如,使用 sublime 中的正则表达式,这很容易通过以下方式完成:正则表达式:([a-z])\n\s([a-z])代替:$1 $2

但是,在 Perl 中,如果我输入此命令,(用于测试我是否可以在任何情况下匹配模式):

perl -pi.orig -e 's/[a-z]\n.+to/TEST/g' file

它不匹配任何东西。

有谁知道为什么 Perl 在这种情况下会有所不同,Perl 命令的正确表述应该是什么?

最佳答案

默认情况下,Perl -p 标志逐行读取输入。因此,您不能期望您的正则表达式匹配 \n 之后的任何内容。

相反,您想一次读取整个输入。您可以使用标记 -0777 来执行此操作(这在 perlrun 中有记录):

perl -0777 -pi.orig -e 's/([a-z])\n\s(to)/$1 $2/' file

关于正则表达式在 Perl 中不匹配,而在其他程序中匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71556049/

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