使用String.match()时出现PatternSyntaxException

时间:2012-11-01 19:42:52

标签: java regex

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

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

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

例如,该字符串应匹配:

name {

我要回复的信息是“在索引9附近非法重复”,但我不知道我在做什么这是非法的。违规字符应该匹配最后一节和{。

之间的任意数量的空白字符

有人能发现我做错了吗?

2 个答案:

答案 0 :(得分:3)

您需要使用{转义\\

答案 1 :(得分:1)

你需要用两个反斜杠来逃避你的opening curly brace

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