emacs在每行中的符号后复制文本

时间:2015-08-21 01:13:18

标签: regex emacs

我有一段看起来像

的文字
par.dm_std;
par.dm_POM;
par.dm_CaCO3;

我希望它看起来像

par.dm_std = dm_std;
par.dm_POM = dm_std;
par.dm_CaCO3 = dm_CaCO3;

所以我基本上是在"。"之后复制所有内容。并在之前加上一个等号,之后加一个分号。我试图用

运行查询替换
par\.\(.*\) -> par\.\1 = \1;

但是emacs会返回错误消息

Invalid use of `\' in replacement text

我无法弄清楚我的生活在这里做错了什么? 顺便说一句,这是我正在使用的matlab代码。

2 个答案:

答案 0 :(得分:2)

您不应在替换文本中转义.。你还应该在匹配表达式的末尾有一个文字;;否则,它将包含在\1中,并且您将在等号前获得额外的分号。

Replace regexp: par\.\(.*\);
Replace with: par.\1 = \1;

答案 1 :(得分:0)

显然,我应该使用replace-regex而不是query-replace-regex。 对于前者,一切正常。