python - 如何从用户帖子/字符串中提取主题标签?

标签 python django

我想从具有 #hashtag 的用户输入中解析一个字符串,并将结果与​​其他单词一起打印出来

就像 facebook 和 twitter 处理它的方式:)

例如: 用户发帖

" hello #word, am learning #python and #django today! "

我希望输出是: 你好#word ,正在学习#python#django今天!

这就是我已经走了多远:

@login_required
@ajax_required
def post(request):
    last_feed = request.POST.get('last_feed')

    user = request.user
    csrf_token = (csrf(request)['csrf_token'])
    feed = Feed()
    feed.user = user
    post = request.POST['post']

    lookup_hash_tag =  post.strip()
    hstg=re.compile(r"#(\w+)")
    #print pat.findall(s)

    for hashtag in hstg.findall(lookup_hash_tag):

        post = "<span><a href='/hastag/?q={}'>{}</a> </span> {}".format(hashtag, hashtag,  post.replace('#', '#'))




    if len(post) > 0:
        feed.post = post[:255]
        feed.save()
    html = _html_feeds(last_feed, user, csrf_token)
    return HttpResponse(html)

最佳答案

我不太清楚你的问题,但我发现有一些问题:

  • 可以使用: re.sub(r'#([\w]+)', r"<span><a href='/hastag/?q=\g<1>'>#\g<1></a> </span>", a) 来代替匹配的 for 循环。
  • post变量每次都会在 for 循环中被覆盖。
  • 什么是 Feed?
  • 大量额外的复杂性( post.replace('#', '#') 不执行任何操作,在变量周围使用方括号执行任何操作,等等)
  • 如果提要是模型,为什么不制作 post场更大?如果您在 255 处剪切,则可能会丢失数据(或者例如在链接中间剪切)

请提供更多信息,否则我们只是猜测。

关于python - 如何从用户帖子/字符串中提取主题标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45416207/

相关文章:

python - 编辑 MySQLdb Python 中使用的 C 编译器

python - 类型错误 : the first argument must be callable

django - 如何在生产数据库的副本上运行 Django 测试?

python - 获取与 Django ModelAdmin 中选定的foreignkey相关的初始数据

python - 如何用鹡鸰称呼孙子

python - 从Python中的类调用函数时,参数数量错误

python - 在 python 中创建生成器

python - 如何根据域/子域显示内容

python - Itertools.按严格顺序排列列表 python

Django 日期格式问题