我有一个TextField,允许用户从Singleton数据库中搜索Employee。每个员工都有名字和姓氏。
searchBar.textProperty().addListener(
(observable, oldValue, newValue) -> {
filteredList.setPredicate(arg0 -> {
String nameString = arg0.getFirst() + arg0.getLast();
nameString = nameString.toUpperCase();
if (arg0.getFirst().toLowerCase()
.contains(newValue.toLowerCase())
|| arg0.getLast().toLowerCase()
.contains(newValue.toLowerCase()))
return true;
return false;
});
});
如果我有一个名为“John Smith”的人,如果我搜索以下内容,过滤器将正常工作: “约翰” “约翰” “史密斯” “史密斯” 但不是 “约翰·史密斯” “史密斯约翰” “史密斯,约翰” 如何正确使用我的搜索查询与正则表达式找到员工?例如,对5个单词的查询有15个子字符串,我们可以尝试对其进行测试。
JACOB Ĵ 一个 C Ø 乙 JA AC CO OB JAC COB JACO ACOB
以这种方式搜索所有可能的匹配将是太昂贵了。最有效的方法是什么?我希望能够找到John Smith与“Johnsmith”或“Smithjo”或类似的东西。
答案 0 :(得分:0)
你的正则表达式可能就像"。(?:John | Smith)。" 我会搜索任何包含" John"或者#34;史密斯"。 这是你想要的吗? 尼科