gpt4 book ai didi

regex - OS X 'RE error: invalid repetition count(s)'

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

我正在尝试替换以下内容(以最简单的形式)

{filedir_9}file.jpg

{filedir_7}file.jpg

使用

sed -i -e 's/(\{filedir_9\})([a-z\-\_0-9]+).jpg/\{filedir_7\}$2$3/g'

但我得到:RE 错误:重复计数无效

最佳答案

你可以使用

sed -i '' -e 's/{filedir_9}\([-a-z_0-9]\{2,\}\)\.jpg/{filedir_7}\1/g'

请注意,\{ 在 POSIX BRE 模式中打开一个限制量词,您需要 { 来匹配文字 {

要在 BRE POSIX 模式中创建捕获组,您需要 \(...\) 而不是 (...) 并且在替换中,您应该使用 \1 来引用第 1 组值。

在 POSIX 模式中,不支持括号表达式内的转义序列,您应该将 - 放在模式的开始/结束处,转义它不起作用(\ 被视为文字 \ 字符)。

此外,要匹配一个点,您需要对模式中的 . 字符进行转义,如果未转义,它将匹配任何字符。

在替换字符串中,您应该使用 \1 而不是 $1(类似 Perl 的占位符)。请注意,您正在对第 2 组和第 3 组使用占位符,而您的 (\{filedir_9\})([a-z\-\_0-9]+).jpg 模式仅 try catch 2 个子字符串,并且因此没有第 3 组(因此,使用 $3\3 没有意义,它是空的)。

关于regex - OS X 'RE error: invalid repetition count(s)',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50729640/

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