红薯 分享了这个代码 ,我觉得很好 在这个社区与大家分享 。
static Pattern referer_pattern = Pattern.compile("@([^@^\\s^:]{1,})([\\s\\:\\,\\;]{0,1})");//@.+?[\\s:]
/**
* 处理提到某人 @xxxx
*
* @param msg 传入的文本内容
* @param referers 传出被引用到的会员名单
* @return 返回带有链接的文本内容
*/
public static String _GenerateRefererLinks(String msg, List<Long> referers) {
StringBuilder html = new StringBuilder();
int lastIdx = 0;
Matcher matchr = referer_pattern.matcher(msg);
while (matchr.find()) {
String origion_str = matchr.group();
//System.out.println("-->"+origion_str);
String str = origion_str.substring(1, origion_str.length()).trim();
//char ch = str.charAt(str.length()-1);
//if(ch == ':' || ch == ',' || ch == ';')
// str = str.substring(0, str.length()-1);
//System.out.println(str);
html.append(msg.substring(lastIdx, matchr.start()));
User u = null;
@SuppressWarnings("unchecked")
List<User> users = User.INSTANCE.LoadList(User.CheckUsername(str));
if (users != null && users.size() > 0) {
u = users.get(0);
for (User ref : users) {
if (ref.getThis_login_time() != null && u.getThis_login_time() != null &&
ref.getThis_login_time().after(u.getThis_login_time())) {
u = ref;
}
}
}
if (u == null) {
u = User.GetByIdent(str);
}
if (u != null && !u.IsBlocked()) {
html.append("<a href='" + LinkTool.user(u) + "' class='referer' target='_blank'>@");
html.append(str.trim());
html.append("</a> ");
if (referers != null && !referers.contains(u.getId()))
referers.add(u.getId());
} else {
html.append(origion_str);
}
lastIdx = matchr.end();
//if(ch == ':' || ch == ',' || ch == ';')
// html.append(ch);
}
html.append(msg.substring(lastIdx));
return html.toString();
}
分享到:
相关推荐
Quidway ME60 故障处理-BRAS 业务
ME60故障处理trace详细解析ME60故障处理trace详细解析
* 高效的数据处理:ME2可以快速处理大规模数据集,提高数据分析效率。 3. ME2的应用场景 ME2可以应用于以下领域: * 环境科学:ME2可以用于环境污染物监测、气候变化研究、生态系统研究等领域。 * 气象学:ME2...
kismet算法中特征提取部分的代码原作者没有给出,自己写了一版,经验证和作者的实验效果一致。
本文档针对ME60设备,介绍了20端口10GBase LAN/WAN-SFP+集成宽带业务处理板BSUI-200)的详细情况。
有时打印机长期不用,会使连供的打印头堵塞,使用清洗液很有成效
epson me 1+及相应打印机清零处理
meza 是个 Python 库, 专门读取和处理表格数据 ; 函式型接口,擅长读写大文件, 并支持十数种文件格式
内网访问外网慢的问题,ME60常见问题处理
本文档针对ME60设备,介绍了2端口100GBase-CFP集成多业务处理板(MSUI-200)单板的详细情况。
epson me1 清零软件 当您的爱普生ME1打印机出现...这时您就可以使用这个清零软件对打印机内置的废墨计数器进行清零处理。让您的爱机继续为您服务。从而免去跑爱普生售后服务部的麻烦,也不用去浪费本来不多的银子了
本文档提供了HUAWEI ME60的维护指导,包括日常维护指导、应急维护指导、典型故障处理。
全书以无线行业Java技术规范JTWI(JSR-185)为基础,内容涵盖了用户界面设计、事件处理、游戏设计、网络编程、多媒体、本地持久存储、Push注册、无线消息、无线程序发布、安全架构、国际化等主要技术。从编程实战...
爱普生me350清零软件是一款专为爱普生me350/330打印机制作的清零软件,当出现“部件已到使用寿命”这样的提示,那么需要对墨盒进行清零处理,使用软件就可以清零打印机,欢迎有需要此款工具的朋友们前来下载使用。...
在设计与实现方面,分成难度选择、游戏规则、方块处理这几个模块进行实现。在开发与实现的同时也讲解了俄罗斯方块这款古老而经典游戏的游戏背景、规则以及相关特性。最终展示了无线网络移动端的游戏开发的基本开发...
华为ME60设备单板CPU利用率高的问题分析处理.pdf
8_ME&CRF 共48页.pdf 9_常见深度学习模型 共49页.pdf 10_词向量 共38页.pdf 11_基于上下文无关文法的句法分析 共62页.pdf 12_PCFG和统计句法分析 共50页.pdf 13_依存句法分析介绍 共44页.pdf 14_自然语言处理中的...
EPSON 打印机ME70清零软件2011(完全免费) 关键词:OFFICE70 EPSON 打印机 ME70 清零软件 ...压缩包里面有8个文件/图片,下载后杀毒软件可能误报,请自行处理,该软件保证无毒,安全,能用!3分不算贵,记得回来评论
在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下: 1. 把每个单词的首字母变为大写。 2. 把数字与字母之间用下划线字符(_)分开,使得更清晰 3. ...
本文档针对ME60设备,介绍了20端口10GBase LAN/WAN-SFP+集成宽带业务处理板MSUI-200)。