正则表达式替换,不能插入简单字符

时间:2013-05-18 02:21:51

标签: regex coda

我已经尝试了所有可能的工作,并且尝试了2个小时。

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

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

)}[a-z]

..而且工作正常。

我尝试了所有这些,但没有一个保留[a-z]部分,它们都删除/替换它。

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

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

1 个答案:

答案 0 :(得分:1)

这应该有效:

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

从本质上讲,我们字面上匹配一个紧密的括号,然后是一个紧密的括号。然后我们匹配az之间的字母,但[a-z]周围的括号使我们可以引用一个捕获组。然后我们可以(并且只有这样)在替换中使用\1。没有捕获组,它不知道\1指的是什么。有一个,它确实。

将其与sed

一起使用
% echo 'hello)}world' | sed -Ee 's/\)\}([a-z])/)};\1/g'
hello)};world