【问题标题】:PatternSyntaxException when using String.match()使用 String.match() 时出现 PatternSyntaxException
【发布时间】:2012-11-01 19:42:52
【问题描述】:

以下看似无害的模式导致了 PatternSyntaxException:

String pattern = "^(?:.*)\\s*{$"; // pattern is:   ^(?:.*)\s*{$

正如您在regexpal 中看到的那样,它似乎在那里正常工作。

例如,该字符串应该匹配:

name {

我收到的消息是“索引 9 附近的非法重复”,但我不知道我在做什么,这是非法的。违规字符应该与最后一部分和 { 之间的任意数量的空白字符匹配。

谁能发现我做错了什么?

【问题讨论】:

    标签: java regex


    【解决方案1】:

    您需要使用\\ 转义{

    【讨论】:

    • 由于某种原因我还不能接受答案,但这已经解决了。
    • @Wug.. 10 分钟后你就可以完成了。
    【解决方案2】:

    您需要使用两个反斜杠转义 opening curly brace

    String pattern = "^(?:.*)\\s*\\{$"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-03
      • 2012-11-25
      • 2016-11-17
      • 1970-01-01
      • 2015-03-16
      • 2013-05-30
      • 2015-09-19
      相关资源
      最近更新 更多