无效 Java 正则表达式

Invalid Java Regex

我有这个正则表达式:

private final String CUSTOM_REGEX = "[679]\d{8}";

它应该代表从6、7或9开始的任何数字,再有八个数字。 (即“611234392”、“782123842”或“934233875”)

但是,我收到一个错误 "Invalid scape sequence"

有什么提示吗?

使用以下内容:

private final String SPANISH_NUMBER_REGEX = "[679]\d{8}";
                                                  ^^

为什么?

在 Java in String literal 你必须转义 \ 一个 \ 因为它本身是一个特殊字符,需要转义。

String SPANISH_NUMBER_REGEX = "[679]\d{8}";

\是String字面量中的一个特殊字符,即转义符。您需要对其进行转义以获得正确的结果:

String SPANISH_NUMBER_REGEX = "[679]\d{8}";

反斜杠字符 \ 用于引入转义结构,以及引用否则将被解释为非转义结构的字符。因此,表达式 \ 匹配单个反斜杠,而 \{ 匹配左括号。

来自官方 Oracle 文档:Backslashes, escapes, and quoting.