Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取regex:java中的非法字符范围_Java_Regex_Escaping_String Matching - Fatal编程技术网

获取regex:java中的非法字符范围

获取regex:java中的非法字符范围,java,regex,escaping,string-matching,Java,Regex,Escaping,String Matching,我有一个简单的正则表达式模式来验证名称。但当我运行它时,我得到非法字符范围错误。我认为通过转义“\s”,它将允许一个空间,但编译器仍在抱怨 public boolean verifyName(String name) { String namePattern = "^[\\p{L}]++(?:[',-\\s][\\p{L}]++)*+\\.?$"; return name.matches(namePattern); } 这是我认为不应该发生的错误,因为名称可能包含这些[',-\

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

public boolean verifyName(String name) {
    String namePattern = "^[\\p{L}]++(?:[',-\\s][\\p{L}]++)*+\\.?$";
    return name.matches(namePattern);
}
这是我认为不应该发生的错误,因为名称可能包含这些
[',-\\s]

那么我哪里不明白呢?

你不能有一个“从
到空格”的范围。也许你是想逃避
-

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

将起作用的事情:

"[ ',-]"

"[',\\- ]"
不能有“从
到空格”的范围。也许你是想逃避
-

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

将起作用的事情:

"[ ',-]"

"[',\\- ]"

那么范围应该是多少呢?我只想允许撇号、连字符、逗号或空格。如果你想要一个空格,请使用空格。如果将连字符放在最后,则不需要将其转义:
[',-]
那么范围应该是多少…我只想允许撇号、连字符、逗号或空格如果需要空格,请使用空格。如果将连字符放在最后,则不需要将其转义:
[',-]
为什么要使用
++
而不是
++
为什么要使用
++
而不是
++