前言
很久不更了0.0,现在公司里越来越没有了工作的激情,只剩下麻木的躯体和向往文艺的灵魂。
最近在整公司的QQ机器人开发,我们开发用到的是酷Q,用到的开发工具则是JCQ,然后因为对于图片或者文件消息等,接收到的字符串形如以下:
[CQ:image,file=50CB70BF5232E82C5E0D73184FAAE3EB.jpg]广东省方法[CQ:image,file=50CB70BF5232E82C5E0D73184FAAE3EB.jpg]dfsf[CQ:image,file=50CB70BF5232E82C5E0D73184FAAE3EB.jpg][CQ:image,file=50CB70BF5232E82C5E0D73184FAAE3EB.jpg]
这些东西对于目前公司的业务来说没有用处,所以想着用正则把他去掉,所以摸索了一段时间。
正文
一开始采用的正则:(以下为Java中的代码, \\ 是用来表示 \)
private static Pattern CQ_MSG_PATTERN = Pattern.compile("\\[CQ:.*\\]")
在这中正则的影响下,通过replace替换后的字符串为"",很显然不是"广东省方法dfsf"(目标结果),这个结果看着像是直接将最开头的部分和最结尾的匹配上了。同事提醒我说这是贪婪和非贪婪的问题,让我找个非贪婪的匹配,于是改成了