gpt4 book ai didi

regex - sed错误: "invalid reference\1 on ` s' command's RHS"

转载 作者:行者123 更新时间:2023-12-03 05:03:20 32 4
gpt4 key购买 nike

我运行了几个替换命令作为 colorize script for maven 的核心。其中一个 sed 命令使用正则表达式,在 shell 中查找为 discussed here 。当前(不工作)的实现可以找到 here .

当我将命令的变体之一包含到脚本中时,会发生不同的行为:

变体 1:

$ sed -re "s/([a-zA-Z0-9./\\ :-]+)/\1/g"

适应脚本:

-re "s/WARNING: ([a-zA-Z0-9./\\ :-]+)/${warn}WARNING: \1${c_end}/g" \

错误: shell 输出的信息与我输入 $ sed 的信息相同。奇怪!?

<小时/>

变体 2:

$ sed -e "s/\([a-zA-Z0-9./\\ :-]\+\)/\1/g"

适应脚本:

-e "s/WARNING: \([a-zA-Z0-9./\\ :-]\+\)/${warn}WARNING: \1${c_end}/g" \

错误:

sed: -e expression #7, char 59: invalid reference \1 on `s' command's RHS

最佳答案

您不需要实际捕获才能使其发挥作用吗?即对于变体#2:

-r -e "s/WARNING: (\([a-zA-Z0-9./\\ :-]\+\))/${warn}WARNING: \1${c_end}/g" \

(注:未经测试)

如果没有 -r 参数,反向引用(如 \1)将不起作用,除非每个括号都用 \ 字符转义.

使用 -r 时,除非括号未转义,否则参数反向引用(如 \1)将不起作用。

关于regex - sed错误: "invalid reference\1 on ` s' command's RHS",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16637799/

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