【问题标题】:Eclipse To replace two same lineEclipse 替换两条相同的行
【发布时间】:2016-03-22 05:46:59
【问题描述】:

我错误地使用全局替换 (CTRL + H) 函数替换了所有 java 文件中的几行。 目前的文字如下:-

data.creationtime = DateUtils.convertDateTimeFromServer(data.creationtime);
data.creationtime = DateUtils.convertDateTimeFromServer(data.creationtime); 

我想用正确的单词替换最后一行,如下所示:-

data.creationtime = DateUtils.convertDateTimeFromServer(data.creationtime);
data.modificationtime = DateUtils.convertDateTimeFromServer(data.modificationtime);

我不知道怎么做,因为我有两条相同的线,有人可以指导我吗?

我已关注此link,但正则表达式模式不起作用

解决方案

我尝试了下面的模式并且成功了

匹配:-
(data.creationtime = DateUtils.convertDateTimeFromServer\(data.creationtime\);\s*?data.)([^ ]+?)( = DateUtils.convertDateTimeFromServer\(*?data.)([^ ]+?)(\);)

对于替换:- $1modificationtime$3modificationtime$5

【问题讨论】:

    标签: java regex eclipse


    【解决方案1】:

    也许不是最有效的方法,但应该可以。

    搜索模式:

    (data.creationtime = DateUtils.convertDateTimeFromServer\(data.creationtime\);\s*?data.)([^ ]+?)( = DateUtils.convertDateTimeFromServer\(data.creationtime\);)
    

    替换模式:

    $1modificationtime$3
    

    演示: https://www.myregextester.com/?r=da9d3e48

    【讨论】:

    • eclipse 在搜索字段中一次只占用一行如何在单行中指定上述模式。
    • 通过在 ? 中使用 *(多个)\s(空白元字符)? (lazy) 模式下,可以捕获换行符。我已经编辑了我的答案。
    • 您能否将更多的输入数据行发送给 pastebin.com ?然后我可以在 Eclipse 中进行更好的测试。
    • 嗯...上面的正则表达式对我有用。只需使用简单的搜索和替换对话框 (Ctrl+F) 并选中“Regex”。 i.imgur.com/rKAhZO9.png
    • 是的,它对我来说也可以正常工作,但它不会将上次创建时间替换为修改时间DateUtils.convertDateTimeFromServer(data.modificationtime);
    猜你喜欢
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2022-01-08
    • 1970-01-01
    相关资源
    最近更新 更多