You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取字符串中包含#字符的单词以统计话题标签使用次数

从文本中提取带#话题标签的实现方案

核心逻辑没有那么复杂,不管用什么技术栈,本质都是先拆分文本单元,再筛选符合特征的内容,根据你的运行环境选方案就行。

正则快速匹配方案(推荐,全语言通用)

直接用正则批量提取是效率最高的写法,不用手动处理拆分逻辑,常规英文/数字/下划线组成的hashtag,用匹配规则#\w+就能覆盖90%以上的场景:

  • 会自动跳过零散出现在文本里、后面没跟有效内容的#符号
  • 直接返回所有匹配到的hashtag列表,列表长度就是总出现次数
    Python环境示例代码:
import re

raw_text = "Final test for my EPQ analysis bot #EPQ #DataMining #HashtagTrack #EPQ"
hashtag_list = re.findall(r'#\w+', raw_text)

# 总使用次数直接取列表长度即可
total_count = len(hashtag_list)
# 要做单标签频次统计,直接用Counter遍历计数就行
from collections import Counter
tag_count = Counter(hashtag_list)

如果要兼容中文hashtag,把正则规则调整为#[\u4e00-\u9fa5\w]+就能正常匹配中文标签。

轻量拆分方案(适配无正则的运行环境)

如果你的部署环境不支持正则,按两步处理就行:

  • 第一步:把整段文本按空白分隔符(空格、换行、制表符)拆成独立单词列表,绝大多数语言的字符串默认split()方法不传参数就能完成这个操作
  • 第二步:遍历单词列表,筛选出包含#的单词即可,如果要严格匹配标准话题标签,把判断条件改成「单词以#开头」,能过滤掉#嵌在单词中间的异常情况
    JavaScript环境示例代码:
const rawText = "Debugging the EPQ robot today #EPQ #DevLog #TextAnalysis";
const wordList = rawText.split(/\s+/);
// 严格匹配#开头的标签
const hashtagList = wordList.filter(word => word.startsWith('#'));

统计注意事项

  • 如果需要做大小写不敏感的统计,提取标签后统一转成小写/大写再计数,避免#EPQ和#epq被识别成两个不同标签
  • 如果文本里存在标点跟在标签末尾的情况(比如#EPQ!、#DataAnalysis,),可以在筛选后额外做一步末尾标点裁剪,避免统计误差

内容的提问来源于stack exchange,提问作者Spectrum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 18:36:51