我想从具有 #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/