文字列「Search\nPrefix with tag: app: or text:」内の「\b\w+:」と一致させようとしています。
コードは次のようになります。
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:");
それは動作するはずですよね? これは、文字列からの明示的なテキストと同じです。しかし、まだ一致するものはありません。文字列の改行に到達すると、マッチャーがマッチングを停止すると思われます。そしてどういうわけか、マッチャーに文字列全体をスキャンするように指示するフラグまたは何かが必要です。