【问题标题】:How to search for carriage return in eclipse如何在eclipse中搜索回车
【发布时间】:2009-09-08 00:29:54
【问题描述】:

如果我的 Eclipse 编辑器中有以下文本:

Text Line 1
Text Line 2

我想将文本连接成:

Text Line 1Text Line 2

我的第一个想法是搜索回车符'\n'并将其替换为''以连接它。

我尝试使用 Eclipse 的搜索功能,但它不识别回车符。

有没有其他编辑器可以做到这一点?

【问题讨论】:

  • 回车符不是\n,是\r。

标签: eclipse editor text-editor


【解决方案1】:

如果您满足以下条件,Eclipse 会这样做:

  • 在搜索/替换中开启正则表达式模式
  • 输入 \R 作为换行符

【讨论】:

    【解决方案2】:

    只需使用Edit -> Find/Replace,打开Regular Expressions复选框,搜索\n并将其替换为空格。

    我在 Eclipse 3.4 中尝试过,效果很好。

    【讨论】:

      【解决方案3】:

      简答

      我决定在多行搜索表达式(启用正则表达式)中使用\s++ 作为分隔符,并在需要时使用\Qfoo\E 来转义特殊字符。

      长答案

      正如soru 已经回答的那样,对于任何“Unicode 换行序列”,可以使用带有\R 的正则表达式搜索。

      纯回车由\r 表示。大写和小写有所不同。 \R 表示任何 unicode 换行序列(例如 \r\n)。

      我发现这个 SO 问题是因为我想在 Eclipse 中搜索多行表达式,包括换行符和制表符

          @Override
          @Transient
      

      为了在我使用的正则搜索表达式中包含空格(在 Windows 平台上)

      @Override\r\n\t*@Transient
      

      以下表达式也可以:

      • @Override\R\t*@Transient
      • @Override\s++@Transient

      请注意第二个表达式也匹配@Override @Transient 没有换行符,这对我来说很好。

      以下表达式没有!为我工作:

      • @Override\r\t*@Transient
      • @Override\n\t*@Transient

      一些正则表达式的解释:

      • \R 代表任何 unicode 换行序列(例如\r\n
      • \s 代表任意空格
      • \t 代表一个标签
      • * 匹配零次或多次出现
      • ++ 匹配一个或多个匹配项
      • \Q\E 转义包装的内容。如果您的原始多行表达式包含特殊的正则表达式字符,请使用它们,例如

      \Q/**\E\s++\Q*\E

      匹配

          /**
           *
      

      另见:

      Difference between \n and \r?

      https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

      【讨论】:

      • \R 为我工作,而不是 \r\n,即使 \r\n 是文件中的内容
      【解决方案4】:

      编辑器中的大多数查找和替换任务(至少是 TextPad)都可以通过正则表达式进行替换。如果你可以在 eclipse 中找到这个选项,那么就使用它吧。

      【讨论】:

        【解决方案5】:

        \r 是正确的回车正则表达式。但是 Eclipse 标准编辑器没有找到它。 所以使用外部编辑器,例如notepad++

        【讨论】:

        • \R 在 Eclipse 中为我工作,而不是 \r\n,即使 \r\n 是文件中的内容。事实上,取决于你是 Linux、Windows 还是 iOS,会有 \n、\r\n 或 \r
        猜你喜欢
        • 2018-12-04
        • 1970-01-01
        • 1970-01-01
        • 2014-07-02
        • 1970-01-01
        • 1970-01-01
        • 2017-06-10
        • 2017-06-28
        • 1970-01-01
        相关资源
        最近更新 更多