Я пытаюсь соответствовать «\ Ь \ ш +:» внутри строки «Поиск \ nPrefix с тегом: приложение: или текст:»Android соответствие шаблону (не соответствует)
код выглядит следующим образом:
String s = "Search\nPrefix with tag: app: or text:";
SpannableString str = SpannableString.valueOf(s);
Pattern regex = Pattern.compile("\\b\\w+:");
Matcher m = regex.matcher(str);
while(m.find()) {
// do stuff
}
Я следовал за кодом с отладчиком, в Eclipse, и цикл while никогда не вводился, то есть m.find() возвращает false. Я попытался изменить регулярное выражение незамысловатых
Pattern regex = Pattern.compile("app:");
Он должен работать, правильно ?, это же явный текст из строки. Но по-прежнему нет никакого матча. Я подозреваю, что совпадчик перестает соответствовать, когда он достигает строки новой строки в строке. И каким-то образом должен быть флаг или что-то, что может сказать совпадению для сканирования всей строки.
Должен работать так, как есть. Может быть, это не нравится 'SpannableString', попробуйте' Matcher m = regex.matcher (s); ' – zapl
Просто, чтобы убедиться, я попробовал строку, и это то же самое. Мне нужно, хотя spannable, потому что я хочу покрасить совпадения, и мне нужно m.start() & m.end() для каждого m.find(), чтобы сделать это. – ilomambo
Моя ошибка, снова. Я упростил код, чтобы показать его здесь, но на практике условием while было m.find() && --count> 0, и счет был виновником. Регулярное выражение было в порядке. Вывод: «Ложитесь спать, если вы слишком устали работать». – ilomambo