Emacs正则表达式搜索然后写

时间:2014-04-16 17:05:38

标签: regex emacs elisp

我想在缓冲区的每一行中找到/提取一个组,然后将其写入新的缓冲区。

所以在逗号分隔的数据文件中,我的行基本上是这样的:

'A-field','B-field','C-field','D-field'

,即每行四个单引号数据字段。我想提取引用的B字段并将其写入新的缓冲区。

是否可以在elisp repl中从一个缓冲区中提取并将其写入新缓冲区?或者这是你作为一个独立的.el文件写的东西,然后从迷你缓冲区的缓冲区(M-my-extract-write)调用?

2 个答案:

答案 0 :(得分:2)

这是一种方法:

  • 将文件内容复制并粘贴到新缓冲区。
  • 在新缓冲区中执行C-u C-s ^[^,]*,'\([^']*\)',.* M-% \1 RET !

答案 1 :(得分:1)

对于像这样的东西,我建议multiple-cursors + sexp运动。

宏也运行良好,但多光标的即时反馈很好。

编写elisp来处理简单的重复性任务是过度的。