检查字符串是否仅包含非字母数字字符

时间:2020-07-27 17:14:15

标签: java regex

我需要检查字符串以查看它们是否仅包含“非字母数字字符”。基本上,我可以使用一个字符串“ !!! hi”,这样就可以了,因为它既包含字母数字字符,也包含非字母数字字符,但是一行仅是“ @@#!”。这将被删除。似乎我需要某种普通的Java所不包含的“包含”类型。

这是我尝试过的。

if(line.matches("[^a-zA-Z\\d\\s:]")){
   line = line;
} else {
   line = line.replace(line, "");
}

2 个答案:

答案 0 :(得分:1)

如果您只想查看其是否包含字母数字,则可以find()

import java.util.regex.Matcher;
import java.util.regex.Pattern;


    public String clean(String line) {
        Pattern p = Pattern.compile("\w"); 

        Matcher m = p.matcher(line);
        if (m.find()) {
          return line; // found any character or digit, keep the line
        }
        return ""; // else return nothing
    }

答案 1 :(得分:-1)

使用此正则表达式:

if(!line.matches("^[a-zA-Z0-9!]*$"))

检查字符串line中是否有任何个非字母数字字符: