gpt4 book ai didi

regex - 具有重叠后视的重复正则表达式替换

转载 作者:行者123 更新时间:2023-12-04 02:30:46 25 4
gpt4 key购买 nike

我要

oy 1 x 1 x 1
1 x 1 x 1

成为

oy 1 y 1 y 1
1 x 1 x 1

(基本上,如果行以 oy 开头,则用 y 替换 x,重用 y)。

我试过了

echo "oy 1 x 1 x 1" | sed -E "s/(o(.)(.*))x/\1\2/g"
echo "oy 1 x 1 x 1" | perl -pe "s/(?<=o)(.)(.*)x/\1\2\1/g"
echo "oy 1 x 1 x 1" | perl -pe "s/o(.)(.*)\Kx/\1/g"

但每个只替换最后一次出现。

这些非贪婪变体

echo "oy 1 x 1 x 1" | perl -pe "s/(?<=o)(.)(.*?)x/\1\2\1/g"
echo "oy 1 x 1 x 1" | perl -pe "s/o(.)(.*?)\Kx/\1/g"

只替换第一次出现的。

我还能尝试什么?

最佳答案

这可能对你有用(GNU sed):

sed -E ':a;s/\<(o(.) .*)x/\1\2/;ta' file

如果有一个单词 oy,其中 y 是任何字符,则匹配该字符并替换所有 x 的其余部分符合它。

关于regex - 具有重叠后视的重复正则表达式替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64316995/

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