小编典典

在正则表达式中获取非法字符范围:java

java

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

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

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

所以我在哪里不了解?


阅读 555

收藏
2020-11-26

共1个答案

小编典典

您不能有范围“从,到空白”。也许您打算逃避-

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

会起作用的事情:

"[ ',-]"

"[',\\- ]"
2020-11-26