java - 如何检查字符串是否包含搜索项

标签 java regex string search-engine contains

我有一个 String 和一个充满搜索项的 String[]

如何检查我的 String 是否包含所有搜索项?

这是一个例子:

案例一:

String text = "this is a stupid test";
String[] searchItems = new String[2];
searchItems[0] = "stupid";
searchItems[1] = "test";

案例二:

String text = "this is a stupid test";
String[] searchItems = new String[2];
searchItems[0] = "stupid";
searchItems[1] = "tes";

在情况 1 中,该方法应返回 true,但在情况 2 中,该方法应返回 false

最佳答案

您可以使用 word boundaries 执行此操作在正则表达式中:

boolean result = true;
for (String item : searchItems) {
    String pattern = ".*\\b" + item + "\\b.*";
    // by using the &&, result will be true only if text matches all patterns.
    result = result && text.matches(pattern);
}

边界可确保仅当整个单词都出现在您的文本中时才会匹配搜索词。因此,"tes" 将不会与 "test" 匹配,因为 "\btes\b" 不是 "\的子字符串btest\b".

关于java - 如何检查字符串是否包含搜索项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25998991/

相关文章:

java - 如何在Java套接字中创建接收数据的监听器

java - Weblogic 10.3.6 域向导无法创建 JVM

javascript - 如何在 Javascript 中构建匹配 1,234.56 1.234,56 1234.56 和 1234,56 的正则表达式?

将逗号分隔的字符串与数字进行比较时,MySQL 出现奇怪的行为

r - 如何删除R中匹配字符串后的所有内容?

java - 获取数组的最后一个元素

java - 将文本文件从 Java 服务器发送到 C 客户端

.NET 正则表达式 Lookbehind 不贪婪

python - 使用正则表达式拆分标题和内容

c++ - 为什么使用 string::iterator 而不是索引?