【问题标题】:Eclipse - search and replace beginning of lineEclipse - 搜索和替换行首
【发布时间】:2013-08-09 08:22:12
【问题描述】:

我想在我选择的每一行的开头添加两个空格。我曾经使用过的每一个理智的编辑器都允许我使用相当于 s/^/ /g 的方法来完成此操作(这是两个空格,但 SE 将其折叠为一个)。在 Eclipse (Kepler) 中,我转到编辑->查找/替换,在“查找:”框中键入“^”,在“替换为”框中输入“”,在“范围”下选择“选定行”,然后检查“正则表达式”复选框。当我单击“全部替换”时,没有任何反应,除了“查找/替换”对话框底部显示“未找到字符串”。在这种情况下,我必须使用什么咒语来取悦 Eclipse?

【问题讨论】:

  • 如果您使用正则表达式,请在“查找字段”中尝试 \n,然后在替换字段中添加两个空格...

标签: regex eclipse


【解决方案1】:

尝试:

查找:^.

替换:(two spaces)$0

【讨论】:

  • 谢谢,这行得通(@Joe:虽然我没有在我的问题中指定,但它不适用于空行实际上对我来说是一个好处:))
  • 很惊讶,即使经过这么好的解决方案,它也没有任何积极的投票!
【解决方案2】:

^ 和 $ 是零宽度锚。你需要给他们一些内容。在这种情况下,您可以捕获一个组并在前面添加空格,如下所示:

查找:^(.*)$ 替换:$1(两个空格后跟 $1)

【讨论】:

  • 谢谢,这行得通——尽管我从未听说过零宽度锚点与表达式不匹配。我猜是生活和学习。
  • @Roel 这不是一个规则,它取决于编辑器/程序的实现。否则你可以说,eclipse 实现正确,而 vim/sed/awk... 都带有这个 bug。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-28
  • 1970-01-01
  • 1970-01-01
  • 2011-03-11
  • 2010-11-25
  • 2021-01-31
相关资源
最近更新 更多