【发布时间】:2016-06-13 10:43:03
【问题描述】:
我有一个文本视图,我目前与以下链接匹配:
Linkify.addLinks(holder.tvMessage, Linkify.ALL);
但是,现在我想匹配所有内容(电话号码、电子邮件、网址),除了一个特定的网址 http://dontmatch.com。
我已经尝试过后续调用,例如:
Linkify.addLinks(holder.tvMessage, Linkify.EMAIL_ADDRESSES);
Linkify.addLinks(holder.tvMessage, Linkify.PHONE_NUMBERS);
Linkify.addLinks(holder.tvMessage, Linkify.MAP_ADDRESSES);
Linkify.addLinks(holder.tvMessage, pattern, "http://");
但似乎每次调用都会覆盖上一次调用的链接,而只留下最后一次调用的链接。我也不确定如何编写正则表达式以匹配除我希望忽略的站点之外的所有内容。我需要 MatchFilter 吗?
更新:
我可以过滤掉我不想要的网址:
Linkify.addLinks(holder.tvMessage, Patterns.WEB_URL, null, new MatchFilter() {
@Override
public boolean acceptMatch(CharSequence seq, int start, int end) {
String url = seq.subSequence(start, end).toString();
//Apply the default matcher too. This will remove any emails that matched.
return !url.contains("dontmatch") && Linkify.sUrlMatchFilter.acceptMatch(seq, start, end);
}
}, null);
但我如何指定我还想要电子邮件、电话号码等?
【问题讨论】: