diff --git a/app/src/main/java/org/houxg/leamonax/adapter/NoteAdapter.java b/app/src/main/java/org/houxg/leamonax/adapter/NoteAdapter.java index 1037435..90f245e 100644 --- a/app/src/main/java/org/houxg/leamonax/adapter/NoteAdapter.java +++ b/app/src/main/java/org/houxg/leamonax/adapter/NoteAdapter.java @@ -26,6 +26,7 @@ import org.houxg.leamonax.model.Notebook; import org.houxg.leamonax.service.NoteFileService; import org.houxg.leamonax.utils.FileUtils; import org.houxg.leamonax.utils.HtmlUtils; +import org.houxg.leamonax.utils.StringUtils; import org.houxg.leamonax.utils.TimeUtils; import org.houxg.leamonax.widget.NoteList; @@ -66,7 +67,7 @@ public class NoteAdapter extends RecyclerView.Adapter { if (TextUtils.isEmpty(titleKeyWord)) { mTitleHighlight = null; } else { - mTitleHighlight = Pattern.compile(titleKeyWord, Pattern.CASE_INSENSITIVE); + mTitleHighlight = Pattern.compile(StringUtils.escapeRegex(titleKeyWord), Pattern.CASE_INSENSITIVE); } } diff --git a/app/src/main/java/org/houxg/leamonax/utils/StringUtils.java b/app/src/main/java/org/houxg/leamonax/utils/StringUtils.java index 18dd36a..ea014c0 100644 --- a/app/src/main/java/org/houxg/leamonax/utils/StringUtils.java +++ b/app/src/main/java/org/houxg/leamonax/utils/StringUtils.java @@ -54,4 +54,21 @@ public class StringUtils { public interface Replacer { String replaceWith(String original, Object... extraData); } + + //转义正则表达式中的几个特殊符号 + public static String escapeRegex(String str) { + int length = str.length(); + StringBuilder sbf = new StringBuilder(); + for (int i = 0; i < length; i++) { + char c = str.charAt(i); + if (c == '*') { + sbf.append('\\').append(c); + } else if (c == '+') { + sbf.append('\\').append(c); + } else if (c == '?') { + sbf.append('\\').append(c); + } + } + return sbf.toString(); + } }