1

我已经尝试了所有可能的方法,并尝试了 2 个小时来使其正常工作。

我正在使用代码(版本 1)中的搜索和替换选项,但无法使替换代码正常工作。

我想在某些字符之间添加一个分号。我这样搜索:

)}[a-z]

..这很好用。

我已经尝试了所有这些,但没有人保留 [az] 部分,他们都删除/替换它。

)};\1
)};*1
)};[a-z]
)};\1\2
)};$1
)};($1)
)};(\1)
)};[$1]
)};[\1]

我已将其设置为使用 POSIX Basic 选项,但任何选项,设置都可以。我只需要它来简单地插入一个分号

4

1 回答 1

1

这应该有效:

s/\)\}([a-z])/)};\1/g

本质上,我们从字面上匹配一个右括号,后跟一个右大括号。然后我们匹配 和 之间的一个字母az但是括号周围的括号[a-z]使它成为我们可以引用的捕获组。然后我们可以(并且只有那时)\1在替换中使用。没有捕获组,它不知道\1指的是什么。有了一个,它确实如此。

使用它sed

% echo 'hello)}world' | sed -Ee 's/\)\}([a-z])/)};\1/g'
hello)};world
于 2013-05-18T02:27:56.770 回答