2

我有一个简单的正则表达式模式来验证名称。但是当我运行它时,我得到非法字符范围错误。我认为通过转义“\s”可以留出一个空格,但编译器仍在抱怨。

public boolean verifyName(String name) {
    String namePattern = "^[\\p{L}]++(?:[',-\\s][\\p{L}]++)*+\\.?$";
    return name.matches(namePattern);
}

这是我认为不应该发生的错误,因为名称可能包含这些[',-\\s]

所以我哪里不明白?

4

1 回答 1

10

你不能有一个“从,到空白”的范围。也许你的意思是逃跑-

\s不是空格,而是[ \t\r\n\v\f](空格、制表符、回车符、换行符、垂直制表符或换页)。

可行的事情:

"[ ',-]"

"[',\\- ]"
于 2013-04-20T07:15:22.173 回答