【问题标题】:java eclipse regex cant "\+"java eclipse 正则表达式不能“\+”
【发布时间】:2011-05-31 03:37:12
【问题描述】:

我需要检查一个字符串是"\++?",它会匹配+6014456之类的东西

但我收到此错误消息invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\) .... 为什么?

【问题讨论】:

  • 发布您的.matches() 电话。不清楚你的实际论点是什么。

标签: java regex eclipse


【解决方案1】:

它给你一个错误,因为 "\++?" 不是一个有效的 Java 文字 - 你需要转义反斜杠。试试这个:

Pattern pattern = Pattern.compile("\\++?");

但是,我认为这实际上不是您想要的正则表达式。你的意思是不是真的像:

Pattern pattern = Pattern.compile("\\+\\d+");

这对应于\+\d+ 的正则表达式,即一个加号后跟至少一个数字。

【讨论】:

    【解决方案2】:

    我认为你应该使用两个反斜杠。一个用于转义第二个(因为它是 java 字符串),第二个用于转义 +(因为它是正则表达式的特殊字符)。

    【讨论】:

      【解决方案3】:

      不应该更像“\\+”吗? ?


          Pattern pattern = Pattern.compile("\\++?");
      System.out.println(pattern.matcher("+9970").find());
      

      为我工作

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-03
        • 2013-03-01
        • 2015-12-29
        • 1970-01-01
        • 2016-09-28
        • 2013-01-18
        • 2012-01-16
        • 1970-01-01
        相关资源
        最近更新 更多