Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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
Java 使用正则表达式将符号添加到字母数字检查_Java_Regex - Fatal编程技术网

Java 使用正则表达式将符号添加到字母数字检查

Java 使用正则表达式将符号添加到字母数字检查,java,regex,Java,Regex,我使用此代码检查字符串是否包含非字母数字字符: private boolean checkNonAlphanumeric(String text) { Pattern p = Pattern.compile("[^a-zA-Z0-9]"); return p.matcher(text).find(); } 这个很好用。但现在我需要检查这个添加一些符号。在本例中为“-”。在这种情况下,我应该使用什么模式 ABCabc-ABC1234=应该正常。 a!#$%#=应该是错误 谢谢 仅

我使用此代码检查字符串是否包含非字母数字字符:

private boolean checkNonAlphanumeric(String text) {
    Pattern p = Pattern.compile("[^a-zA-Z0-9]");
    return p.matcher(text).find();
}
这个很好用。但现在我需要检查这个添加一些符号。在本例中为“-”。在这种情况下,我应该使用什么模式

ABCabc-ABC1234=应该正常。 a!#$%#=应该是错误


谢谢

仅针对字母数字和
-
使用以下选项:

private boolean checkNonAlphanumeric(String text) {
    Pattern p = Pattern.compile("[a-zA-Z0-9-]*");
    return p.matcher(text).find();
}

仅针对字母数字和
-
使用以下选项:

private boolean checkNonAlphanumeric(String text) {
    Pattern p = Pattern.compile("[a-zA-Z0-9-]*");
    return p.matcher(text).find();
}
您可以使用:

private boolean checkNonAlphanumeric(String text) {
    Pattern p = Pattern.compile("[^a-zA-Z0-9\\-]");
    return p.matcher(text).find();
}
我建议添加双斜杠,以确保如果将来更改正则表达式,-,将继续以正确的方式进行解释

如果只使用-,然后决定在-,之前或之后添加其他字符,则不会起作用。例如:

private boolean checkNonAlphanumeric(String text) {
    Pattern p = Pattern.compile("[^a-zA-Z0-9<->]");
    return p.matcher(text).find();
}
private boolean checkNonAlphanumeric(字符串文本){
模式p=模式编译(“[^a-zA-Z0-9]”);
返回p.matcher(text.find();
}
将不匹配-,但以下代码将起作用:

private boolean checkNonAlphanumeric(String text) {
    Pattern p = Pattern.compile("[^a-zA-Z0-9<\\->]");
    return p.matcher(text).find();
}
private boolean checkNonAlphanumeric(字符串文本){
模式p=模式编译(“[^a-zA-Z0-9]”);
返回p.matcher(text.find();
}
您可以使用:

private boolean checkNonAlphanumeric(String text) {
    Pattern p = Pattern.compile("[^a-zA-Z0-9\\-]");
    return p.matcher(text).find();
}
我建议添加双斜杠,以确保如果将来更改正则表达式,-,将继续以正确的方式进行解释

如果只使用-,然后决定在-,之前或之后添加其他字符,则不会起作用。例如:

private boolean checkNonAlphanumeric(String text) {
    Pattern p = Pattern.compile("[^a-zA-Z0-9<->]");
    return p.matcher(text).find();
}
private boolean checkNonAlphanumeric(字符串文本){
模式p=模式编译(“[^a-zA-Z0-9]”);
返回p.matcher(text.find();
}
将不匹配-,但以下代码将起作用:

private boolean checkNonAlphanumeric(String text) {
    Pattern p = Pattern.compile("[^a-zA-Z0-9<\\->]");
    return p.matcher(text).find();
}
private boolean checkNonAlphanumeric(字符串文本){
模式p=模式编译(“[^a-zA-Z0-9]”);
返回p.matcher(text.find();
}

是否将字符添加到末尾?像
[^a-zA-Z0-9-]
只需在末尾添加字符?像
[^a-zA-Z0-9-]