gpt4 book ai didi

PERL 如何将不在同一行的字符串分组

转载 作者:行者123 更新时间:2023-12-02 22:44:10 25 4
gpt4 key购买 nike

内部文本文件

Letter A = "AAA"
Letter B = "BBB"

我尝试:

perl -p -e 's/(Letter A \=)(.*\")(\n+)(Letter B \=)/$1$2$3$4/g' text

但它不起作用。问题似乎在 \n 之后。

有什么想法吗?

其实我想换句话,怎么办?
来自: 字母 A = "AAA"
字母 B = "BBB"
致:
字母 A = "BBB"
字母 B = "AAA"

如果两行之间还有其他单词。还有其他解决方案吗?

ABCABC
字母 A = "BBB"
字母 B = "AAA"
DSAAS
TRQWTR
字母 C = "DDD"
字母 D = "CCC"
射手
利比泰

最佳答案

-p 将输入拆分为多行,这意味着您的模式将永远不会在任何地方看到 \n,除了它正在查看的文本末尾。如果你想做多行匹配,你需要写一个实际的脚本或者改变输入记录分隔符,这样它就不会被分割成行(可能 -0777 使用“slurp”模式)。

perl -0777 -p -e 's/(Letter A =)(.*")(\n+)(Letter B =)/$1 Hello$2$3$4 Hello/' test2
Letter A = Hello "AAA"
Letter B = Hello "BBB"

关于PERL 如何将不在同一行的字符串分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10293339/

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