java - Eclipse 使用正则表达式查找/替换整行

标签 java regex eclipse

我正在使用 Eclipse 的查找/替换将一些 sql 代码格式化为 Java 字符串。我想将 sql 查询的每一行放在引号之间,并在末尾添加一个换行符。

这是我在查找字段中输入的内容:

(.*)

这是我在替换字段中输入的内容

\t\t+ "\1\\n"

这里是一个简单的例子(我实际的sql查询大约是200行)

SELECT *

FROM User
WHERE User.Id = 1232164

这是我希望在之后看到的

    + "SELECT *\n"
    + "\n"
    + "FROM User\n"
    + "WHERE User.Id = 1232164\n"

但是,当遇到空行时查找失败,它表示没有更多匹配结果并终止(或者如果标记了“Wrapped Search”选项则跳转到文件顶部)

我还尝试在查找正则表达式中使用以下内容

^(.*)
^(.*)$

同样的结果

任何人都知道我做错了什么或者这可能是 Eclipse 中的错误。

就其值(value)而言,它在 Emacs 中运行良好,正如我最初编写的那样。

最佳答案

我觉得它是 Eclipse 中的一个错误。尽管如此,我已经通过使用搜索模式实现了您想要的结果(在 Eclipse Juno 中):

(.*)\R

和替换字符串:

\t\t+ "\1\\n"\R

请注意,\R 是一种特殊的 Eclipse 模式,在搜索时可以匹配任何形式的行定界符。替换时,它会插入文档的默认行分隔符。

关于java - Eclipse 使用正则表达式查找/替换整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12814833/

相关文章:

c# - 如何使正则表达式只捕获内部组

javascript - 如何用两个正则表达式拆分字符串

c++ - 使用 Eclipse CDT 和 GDB 进行调试

java - 如何在 Eclipse RCP 中使用网格布局消除组件之间的间隙?

java - 递归计算字符串中的字符并将 "eu"视为单个字符

java - 盈透证券 API 和 Web 应用程序

java - 正则表达式找到最短匹配?

java - 在 Eclipse 中导入项目后丢失资源

java - 瘦 Controller

java - Android主线程不等待AsyncTask