Fix regex filter issues

Escape }
Do not crash on a single quote, at least two chars required for an exact pattern

Closes #101
multisite
Floens 10 years ago
parent f007117aec
commit 2c33a17b0f
  1. 4
      Clover/app/src/main/java/org/floens/chan/core/manager/FilterEngine.java

@ -198,7 +198,7 @@ public class FilterEngine {
}
private static final Pattern isRegexPattern = Pattern.compile("^/(.*)/(i?)$");
private static final Pattern filterFilthyPattern = Pattern.compile("(\\.|\\^|\\$|\\*|\\+|\\?|\\(|\\)|\\[|\\]|\\{|\\\\|\\||\\-)");
private static final Pattern filterFilthyPattern = Pattern.compile("(\\.|\\^|\\$|\\*|\\+|\\?|\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\||\\-)");
private static final Pattern wildcardPattern = Pattern.compile("\\\\\\*"); // an escaped \ and an escaped *, to replace an escaped * from escapeRegex
public Pattern compile(String rawPattern) {
@ -222,7 +222,7 @@ public class FilterEngine {
} catch (PatternSyntaxException e) {
return null;
}
} else if (rawPattern.charAt(0) == '"' && rawPattern.charAt(rawPattern.length() - 1) == '"') {
} else if (rawPattern.length() >= 2 && rawPattern.charAt(0) == '"' && rawPattern.charAt(rawPattern.length() - 1) == '"') {
// "matches an exact sentence"
pattern = Pattern.compile(escapeRegex(rawPattern).substring(1, rawPattern.length() - 1));
} else {

Loading…
Cancel
Save