は私が一致するようにしようとしています(一致しない) "\ \ bはW +:" 文字列の中 ":アプリ:タグで\ 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.find()ごとにm.start()とm.end()が必要です。 – ilomambo
私の間違い、もう一度。私はここにそれを示すためにコードを単純化しましたが、実際にはwhile条件はm.find()&& --count> 0であり、カウントが原因でした。正規表現はOKでした。結論は:「あなたが仕事に疲れたら眠りにつく」。 – ilomambo