【问题标题】:Filtering a FilteredList using Regex?使用正则表达式过滤 FilteredList?
【发布时间】:2014-05-23 07:31:37
【问题描述】:

我有一个 TextField,允许用户从 Singleton 数据库中搜索员工。每个员工都有名字和姓氏。

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 个子字符串,我们可以尝试对其进行测试。

雅各布 Ĵ 一种 C ○ 乙 JA 交流电 一氧化碳 产科 江淮汽车 COB 雅科 ACOB

以这种方式搜索所有可能的匹配项的成本太高了。最有效的方法是什么?我希望能够找到带有“Johnsmith”或“Smithjo”或类似名称的 John Smith。

【问题讨论】:

    标签: java regex javafx


    【解决方案1】:

    您的正则表达式可能类似于“.(?:John|Smith).” 我将搜索任何包含单词“John”或单词“Smith”的句子。 是你想要的吗? 尼可

    【讨论】:

      猜你喜欢
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      • 2017-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      相关资源
      最近更新 更多