在eclipse中附加到行尾

时间:2012-08-03 13:37:40

标签: regex eclipse editor

有没有办法将字符串追加到Eclipse的行尾? 搜索和查找似乎可以工作,但使用只有正则表达式$的find找不到任何字符串。 .$会找到一些东西,但运行find replace会删除你的行的最后一个字符,这是不可取的。有没有人知道在Eclipse中实现这一目标的方法?我的正则表达式是否有问题可能使Eclipse无法理解这一点,而其他编辑器如vim处理它就好......(在Vi / Vim中:0,$s/$/appended to end of line/)。

当然,我并不是唯一希望有这种功能的人......它是由大多数其他优秀的编辑提供的。这可能被视为一个错误吗?

3 个答案:

答案 0 :(得分:14)

我同意这是eclipse中的一个错误。我尝试了同样的结果。我还尝试使用正则表达式搜索字符串“(?< =。)$”来尝试忽略替换中的单个字符匹配,但也失败了。一个人应该能够搜索要追加的字符串的结尾。

这是一个让它发挥作用的技巧,

      Find: "(.)$"
      Replace: $1foo

这将替换行尾之前的单个字符匹配并附加foo。

这是很多箍跳,但至少它有效。

答案 1 :(得分:1)

我想知道最好的办法是在复制它们之前在变量列表上运行Java程序。我不确定你剪切和粘贴的文件的格式但是如果它只是每行只包含变量名称的列表,请尝试:

ArrayList<String> importarray = new ArrayList<String>();
ArrayList<String> rebuildarray = new ArrayList<String>();
BufferedReader bufferedfile = new BufferedReader();

public static void main(String[] args) {
   readFile();
   processFile();
}

static void readFile() {

String file = "C:\\path\\file.txt";
try { 
    String line;
    importstart = new BufferedReader(new FileReader(file));
    for (line = importstart.readLine(); line != null; line = importstart.readLine()) {
        importarray.add (line);
    }
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}
}

 static void processFile() {
String complete = "";
for (String string : importarray) {
    complete = string + "\";";
    rebuildarray.add(complete);
}
  }

添加此内容将提供带有“”的变量名称数组; “最后。

或者,您可以在String声明中使用此数组并执行:

for (String variable : rebuildarray) {
final String string = variable;
doSomething(string);
}

这将否定添加“;。

的需要

请注意确定这是否有点太多,甚至完全是你想要的,但它们是一些想法。

答案 2 :(得分:0)

就我而言,使用Eclipse Luna(4.4.0),公认的解决方案不起作用。它只是替换第一行而保留其他行。但是工作正常(希望添加分号):

find: ^.*$
Replace: $0;