假设您有一个包含许多单字母变量名称的Java文件 a,x,f等,你想把它们改成更有意义的东西。你可以试试 用'filename'替换'f'的每一个出现,但这会弄乱所有的地方 其中'f'出现在单词内(例如在关键字if中)。你会怎么样? 使用正则表达式搜索和替换纠正此问题?
我需要在Emacs中使用单词边界来编写它。由于我是新手,使用Matcher Class是否适用?
答案 0 :(得分:0)
如果您必须使用原生emacs执行此操作: 字边界是一个合理的搜索边界。 Matcher类是Java构造。如果您正在编写代码来执行搜索和替换。由于您在emacs中完全执行此操作,因此不适用。
有一点需要注意,这些变量不能在多个源文件中使用,否则你会搞砸。
我不会用原始emacs这样做。我使用IDE重构工具。 Emacs甚至可以安装Java Refactoring。使用重构工具,该工具可以理解语法,并且比正则表达式更具体。
答案 1 :(得分:0)
以下是基于此question的答案:
find-name-dired
。~/Dropbox/source/java/
。*.java
。
您最终会在dired
缓冲区中包含项目根目录中的所有java文件。dired-do-query-replace-regexp
。
现在,系统会提示您输入要替换的内容 - 例如输入\bf\b
。
接下来,输入替换例如filename
。\bm\b
。
每次要接受 SPC 接受或 n 要跳过
当前的实例。通过键入?。答案 2 :(得分:0)
\ bj \ b其中应该找到字母i。因此,b之间的任何约束都是要找到的角色。