尝试在正则表达式中使用\ w,\ s等时,“无效的转义序列”

时间:2013-03-28 04:10:12

标签: java regex

所以这个正则表达式是这样我可以找到声明java文件的每种类型的方法。我相信这应该得到我正在使用它的java文件的每个实例,但问题是我一直得到无效的转义序列(有效的转义序列是\ b \ t \ n \ f \ r \“\'\)。< / p>

这是字符串。

private String map = "(public|final|protected|private|static|\s) (final|static)* +[\w\<\>\[\]]+\s+(\w+) *\([^\)]*\) *(\{?|[^;]) {";

这是Eclipse IDE出错的部分。

(public|final|protected|private|static|\s)

据我所知,此外还有其他类似的帖子,但在搜索了其中的10个之后,我仍然无法弄清楚问题。

感谢您的帮助。

1 个答案:

答案 0 :(得分:6)

您需要在Java字符串文字中加倍转义字符:

private String map = "(public|final|protected|private|static|\\s) (final|static)* +[\\w\\<\\>\[\\]]+\\s+(\\w+) *\\([^\\)]*\\) *(\\{?|[^;]) {";

Java字符串文字中的每个\\在字符串本身中变为单个\