java - 如何检查一个字符串是否至少包含另一个字符串中的一个字符?

标签 java regex

我使用的是 Java 6。我有一个包含“特殊”字符的字符串 - “!@#$%^&*()_”。如何编写 Java 表达式来检查另一个字符串“password”是否至少包含第一个字符串中定义的一个字符?我有

regForm.getPassword().matches(".*[\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\_\\+].*")

但我不想对特殊字符进行硬编码,而是将它们从属性文件加载到字符串中。因此,在从文件加载所有内容后,我无法弄清楚如何正确转义所有内容。

最佳答案

您可以尝试使用 Pattern.quote 从包含特殊字符和转义符号的字符串创建正则表达式。试试这个:

String special = "!@#$%^&*()_";
String pattern = ".*[" + Pattern.quote(special) + "].*";
regFrom.getPassword().matches(pattern);

关于java - 如何检查一个字符串是否至少包含另一个字符串中的一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16694251/

相关文章:

javascript - 精确匹配单词的正则表达式影响特殊字符匹配

javascript - 将含有特殊字符的句子分成包含空格的单词

java - 使用参数运行我的 jar 时出错

java - 声明性 XML -> POJO 转换

javascript - 对象被 JavaScript 中的后续对象覆盖

python - 使用 re.findall 查找前 x 个匹配项

php - 如何在 PHP 中只提取部分字符串?

java - 用Java制作数字时钟

java - 运行图像 404 后的 docker。Tomcat - 请求的资源不可用

java - Sonarqube SonarLint 定制