Emacs:如何使用正则表达式替换字符串?

21
假设我有以下内容在文本文件(或dired缓冲区)中打开在emacs中:
file_01.txt file_02.txt ... file_99.txt
我想进行查询替换或替换文件为01_file.txt等。
我想使用query-replace-regexp或replace-regexp,但不知道该放什么。我将搜索部分放入“file_..”,但".. "在替换字符串中被读作句点。我正在开始学习regexp,不知道怎么做,请帮忙,谢谢。
1个回答

35

M-x replace-regexp 调用函数使用正则表达式替换。

对于Replace regexp,输入:\(file\)_\([0-9]+\)

这将创建两个匹配组,一个匹配'file'部分,另一个匹配数字。括号\(...\)需要在匹配字符串中保留以便在替换字符串中稍后使用。

对于Replace with,输入:\2_\1

这将插入搜索字符串的第二个匹配项(数字部分),添加下划线“_”,然后添加搜索字符串的第一个匹配项('file')。

有关Emacs正则表达式的更多信息,请参见正则表达式语法正则表达式替换

一旦您掌握了正则表达式基础知识,您可能想要尝试Emacs ReBuilder 工具,使用M-x re-builder可以交互地构建正则表达式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接