【问题标题】:Representing carriage returns and quotes with regular expressions in java在java中用正则表达式表示回车和引号
【发布时间】:2013-06-07 15:56:12
【问题描述】:

我想用引号替换回车后跟引号。例如,如果我有:

Hello World
"Hello World"

我希望结果是:

Hello World"Hello World"

这是我的尝试,字符串文本就是我上面的内容:

String adjusted = text.replaceAll("[\n][\"], "\"");

但是,我的 IDE 不接受这个。 感谢您的帮助!

【问题讨论】:

    标签: java regex replaceall


    【解决方案1】:
    String adjusted = text.replaceAll("(?m)\r?\n\"", "\"");
    

    (?m) 用于多行使用,\r 用于 Windows 中的真正 CR (CR+LF)。

    【讨论】:

    • 正确,除非您不需要 (?m) 修饰符。它只会改变他没有使用的锚点(^$)的行为。
    【解决方案2】:

    您可以使用replace 代替replaceAll 来避免匹配正则表达式,而是匹配文字。

    String adjusted = text.replace("\n\"", "\"");
    

    如果您希望此方法使用您的操作系统行分隔符,您应该使用

    String adjusted = text.replace(System.lineSeparator()+"\"", "\"");
    

    【讨论】:

      【解决方案3】:

      您应该以与平台无关的方式执行此操作,例如:

      String newline = System.getProperty("line.separator");
      String newStr = str.replaceAll(newline, "\"");
      

      【讨论】:

        猜你喜欢
        • 2013-09-29
        • 1970-01-01
        • 1970-01-01
        • 2011-09-17
        • 1970-01-01
        • 2021-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多