获取regex:java中的非法字符范围
我有一个简单的正则表达式模式来验证名称。但当我运行它时,我得到非法字符范围错误。我认为通过转义“\s”,它将允许一个空间,但编译器仍在抱怨获取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); } 这是我认为不应该发生的错误,因为名称可能包含这些[',-\
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]
(空格、制表符、回车符、换行符、垂直制表符或换页符)
将起作用的事情:
"[ ',-]"
"[',\\- ]"
那么范围应该是多少呢?我只想允许撇号、连字符、逗号或空格。如果你想要一个空格,请使用空格。如果将连字符放在最后,则不需要将其转义:
[',-]
那么范围应该是多少…我只想允许撇号、连字符、逗号或空格如果需要空格,请使用空格。如果将连字符放在最后,则不需要将其转义:[',-]
为什么要使用++
而不是++
为什么要使用++
而不是++