本篇内容为个人原创,这里只讲解基础原理和实现算法,高级应用请结合实际场景进行改造
设想这样一个场景:前端页面的一个搜索框,要想支持2种以上的字段搜索,多个搜索条件之间使用英文逗号隔开(中文逗号也要支持)的模糊搜索,效果如下图:
以下是完整的实现算法:
public class SearchUtils {
private final static String delimiterRegex = ",|,";
/**
* 构造多字段的Where查询条件
*
* @param stringToBeMatched 查询的字符串
* @param realFields 映射字段
* @param searchSymbol 查询标识符
* @return
*/
public static String getWhereCriteria(String stringToBeMatched, String[] realFields, String searchSymbol) {
Pattern pattern
= Pattern.compile(delimiterRegex);
MatchResult matcher
= pattern
.matcher(stringToBeMatched);
int position = 0;