import java.util.LinkedHashSet;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;/*** @author XXX* Date: 2019/3/20* Description:*/
public class RegexpUtil {/*** topicTagPattern 匹配话题正则表达式*/private static final Pattern topicTagPattern = Pattern.compile("#([^#]{1,40})#");public static Set<String> getTopicList(String content){Set<String> topicList = new LinkedHashSet<>();Matcher matcher = topicTagPattern.matcher(content);while (matcher.find()){String topicName = matcher.group(1);topicList.add(topicName);}return topicList;}public static void main(String[] args){String str = "#哈哈a###这是一个#好####哈哈a##哈#啊圣诞节疯狂#奥斯卡级代付款##as的开发#";Set<String> topicList = getTopicList(str);System.out.println(topicList);}
}

输出:

[哈哈a, 这是一个, 哈, 奥斯卡级代付款, as的开发]

新浪微博的话题长度限制好像是40个字符,

另外 类似 #1#2#3#  只有1,3 才算话题 2不算 相当于 一但匹配成功一个话题 ,二个# 符号就会被消耗。

如果需要返回包含重复的话题,getTopicList 方法返回参数改为 List 就好。

微博话题正则表达式匹配 ##相关推荐

  1. 实现类似的微博话题的功能

    实现类似的微博话题的功能 正则匹配内容 let reg= /[##][^##]+[##]/g (中英文的#匹配) ReplaceTopic(str) {var r, k; // 声明变量.// var ...

  2. re2正则表达式匹配引擎的c接口版本cre2的中文使用手册

    前言 re2 官方地址: https://github.com/google/re2 cre2 官方地址: https://github.com/marcomaggi/cre2 1 基本类型定义 不透 ...

  3. Oracle正则表达式匹配中文的问题

    查资料知道中文Unicode范围是\u4e00 - \u9fa5 可是自己用来正则表达式匹配中文总是用不了Unicode.最简单举例: select regexp_replace('abc秋歌def' ...

  4. python3 正则表达式 嵌套表格_在Python中使用正则表达式匹配嵌套结构

    unutbu.. 14 编辑: falsetru的嵌套解析器,我稍微修改为接受任意正则表达式模式来指定分隔符和项目分隔符,比我原来的re.Scanner解决方案更快更简单: import re def ...

  5. 剑指offer:面试题19. 正则表达式匹配

    题目:正则表达式匹配 请实现一个函数用来匹配包含'. '和'*'的正则表达式.模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(含0次).在本题中,匹配是指字符串的所有字符匹 ...

  6. 使用正则表达式匹配HTML 下各种title标签

    http://www.oschina.net/question/195686_46313 <title>标题</title> <title> 标题 </tit ...

  7. 刻意练习:LeetCode实战 -- Task18. 正则表达式匹配

    背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...

  8. 通配符?子字符串匹配主字符串次数_突破LeetCode,拿BAT大厂offer之《正则表达式匹配》(动态规划)...

    导读:算法哥前面分享了一个<通配符匹配>,有粉丝留言,算法哥你再讲讲leetcode上另一道<正则表达式匹配>,正则表达式匹配这道题是前面通配符匹配的加强版,大家一起来学习吧! ...

  9. Java算法练习——正则表达式匹配

    题目链接 题目描述 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要 ...

最新文章

  1. C++ mutable
  2. docker初体验:docker部署nginx负载均衡集群
  3. 路由有类查找和无类查找方式
  4. Android编程获取手机型号,本机电话号码,sdk版本及firmware版本号(即系统版本号)...
  5. 关于发布DIPS的MVC项目的IIS 7.0环境配置的方法
  6. 通过mysqldump备份数据库
  7. Oracle 修改数据库基本参数
  8. 大数据之-Hadoop伪分布式_Log日志查看和NN格式化前强调---大数据之hadoop工作笔记0024
  9. mysql ndb 测试_Mysql性能2:基于JDBC的MySQL NDB性能测试结果
  10. 解决C#网络通信编程的阻塞问题
  11. Python自动化之Django中间件
  12. nginx 访问频率限制配置
  13. 台达b3伺服参数设置方法_台达伺服驱动器参数设置一览表
  14. GMSK调制 MATLAB代码
  15. 转:QQ上最酷的留言消息
  16. 微信服务号的六大价值有哪些
  17. 水溶性富勒醇/羟基化富勒烯(Fullerenols)主要成分碳、氧、氢
  18. 【邢不行|量化小讲堂系列20-Python量化入门】10年400倍策略分享(附视频逐行代码讲解)
  19. 免费开源的编辑器 - SciTE
  20. 申宝股票-股指超跌反弹

热门文章

  1. Linux——赋予普通用户root的权限
  2. qq宠物html代码,QQ企鹅即将消失,那个被我们所遗忘的宠物,终于要给大家说再见了...
  3. 飞而威尔让他突然突然
  4. android sqlite fts4,FTS4 sqlite MATCH查询不起作用(FTS4 sqlite MATCH query not working)
  5. 喜闻乐见的「手算题」技巧3:巧用 Python
  6. Java笔记013-IDEA、包、访问修饰符、封装、继承、多态、Super、方法重写/覆盖(override)、java的动态绑定机制
  7. 人工智能伦理风险治理具有复杂性,尚未形成完善的理论架构和治理体系
  8. HTTP 协议中GET和POST到底有哪些区别
  9. STM8读取AD值偶尔跳变出错的问题
  10. vs2017c语言一闪而逝6,Visual Studio IDE编写程序时不显示窗口或窗口一闪而逝的解决方法...