in src/main/java/com/ql/util/express/instruction/op/OperatorLike.java [28:51]
protected static boolean matchPattern(String s, String pattern) {
int sPointer = 0, pPointer = 0;
int sLen = s.length(), pLen = pattern.length();
int sRecall = -1, pRecall = -1;
while (sPointer < sLen) {
if (pPointer < pLen && (s.charAt(sPointer) == pattern.charAt(pPointer))) {
sPointer++;
pPointer++;
} else if (pPointer < pLen && pattern.charAt(pPointer) == '%') {
sRecall = sPointer;
pRecall = pPointer;
pPointer++;
} else if (sRecall >= 0) {
sPointer = ++sRecall;
pPointer = pRecall + 1;
} else {
return false;
}
}
while (pPointer < pLen && pattern.charAt(pPointer) == '%') {
pPointer++;
}
return pPointer == pLen;
}