我有三个正则表达式:
Pattern mentionPattern = Pattern.compile("(@[A-Za-z0-9_-]+)");
Pattern hashtagPattern = Pattern.compile("(#[A-Za-z0-9_-]+)");
Pattern urlPattern = Patterns.WEB_URL;
我有一个字符串:
这是一段包含#sample、#twitter以及链接http://tom_cruise.me的@tom_cruise文本。
我需要使用上述三个正则表达式匹配此文本,并将匹配到的文本标记为蓝色,最终将结果显示在
TextView
中。请问如何实现?需要注意的是,我不需要对文本进行
Linkify
处理,只需要着色即可。并且我没有使用Twitter4j
库。
(@[A-Za-z0-9_-]+)
而不是@([A-Za-z0-9_-]+)
以及(#[A-Za-z0-9_-]+)
而不是#([A-Za-z0-9_-]+)
,然后不需要首先添加@
和#
。如果您可以解决颜色代码问题,请告诉我。 - KaidulStringBuffer
从一个Matcher
传递到另一个Matcher
。因此,带有(#[A-Za-z0-9_-]+)
的Matcher
会破坏颜色代码。在我上面编辑的代码中,我首先将原始字符串传递给Pattern hashtagPattern
,然后将任何输出传递给其他匹配器。这解决了您的颜色代码问题。感谢您的接受! - Vikram