【问题标题】:Java: regexp to match \n with only one \Java:正则表达式匹配 \n 只有一个 \
【发布时间】:2014-06-17 15:34:55
【问题描述】:

我需要一个正则表达式,它在任何地方都匹配\n,除了\\\\\n(n 和多个\)其他所有变体都是合适的。 例如:

  • SOMETEXT\nANOTHERTEXT - 想要 \n 在这里匹配我的正则表达式

  • \\\\\\\\\\\\\\\n - 这不应该匹配

  • \\\\\\\sdfsdfsdf\\\n - 这不应该匹配

  • \\\\\\s\n - 这应该匹配

  • \n - 这应该匹配

对不起,如果这是一个愚蠢的问题,我尝试了谷歌搜索,但没有成功

【问题讨论】:

    标签: java regex newline


    【解决方案1】:

    我相信您正在这里寻找Negative Lookbehind。

    (?<!\\)\\n
    

    见Demo

    【讨论】:

    • 感谢您的回复。如何让它在 Java 中工作?
    • 看来你的解决方案是我试图写的......:+1
    • 在java中,试试(?&lt;!\\\\)\n
    【解决方案2】:

    尝试使用"\\n" 作为模式?

    为了澄清,第一个\ 只是为了转义特殊字符

    【讨论】:

    • 是的,我知道。像 "\\\\\\n" 这样的字符串匹配,尽管它们不应该
    【解决方案3】:

    您需要负前瞻。尝试这样的事情:(?!\\)\n。可能你必须复制斜线,即写类似(?!\\\\)\n

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多