关于搜索条件的正则表达式(来自之前和以后)

时间:2015-10-08 07:35:06

标签: java regex

我的下拉值为"来自"和#34;之前"用于搜索我输入的文本框中的文本。 例如,在文本框中,我有sam beach centeraloe beachcenter of pearl等值。在Java中,我已经实现了

public static List<Reference> getComesAfterList(List<Reference> items, String searchField){
        ArrayList<Reference> matchingList = new ArrayList<Reference>(items.size());
            Iterator<Reference> refDataItems = items.iterator();
        String searchFieldLower = searchField.trim().toLowerCase();
        while (refDataItems.hasNext()) {
                 reference = refDataItems.next();
             try {
                     description = (String)reference.getValue(Reference.USERDESCRIPTION);
             }
        catch (Exception exc) {                          
                    throw new RuntimeException(exec);
             }
        if (description.matches("searchFieldLower(?=description)"))     
        //comes after scenerio->A(?=B)Find expression A where expression B follows 
        {
                    matchingList.add(reference);
                }
    }
}

//comes before case

public static List<Reference> getComesBeforeList(List<Reference> items, String searchField){
        ArrayList<Reference> matchingList = new ArrayList<Reference>(items.size());
            Iterator<Reference> refDataItems = items.iterator();
        String searchFieldLower = searchField.trim().toLowerCase();
        while (refDataItems.hasNext()) {
                 reference = refDataItems.next();
             try {
                     description = (String)reference.getValue(Reference.USERDESCRIPTION);
             }
        catch (Exception exc) {                          
                    throw new RuntimeException(exec);
             }
        if (description.matches("(?<=searchFieldLower)description"))    
        //comes before scenerio->(?<=B)A Find expression A where expression B precedes
        {
                    matchingList.add(reference);
                }
    }
}

如何搜索此类文字条件?除了正则表达式之外还有其他方法吗?帮我解决这个问题。

0 个答案:

没有答案