python - 我正在尝试通过 python 中的 re.findall() 解析主题标签,但相邻的主题标签被排除在外
问题描述
我正在尝试从我的用户输入数据中解析主题标签,以便将获得的字符串(标题)转换为<a>
标签(如果它们存在于我的数据库中)。基本上我希望我的网站用户能够在他们的条目中提及其他标题。
稍后我也会对“@”符号做同样的事情。
a="lşkdjflkgtitle10#title5jdflkgjdlkf*jg lkp&fjgld#title34 kjgdl #fkgjdlfkj^#title10 "
title= re.findall("#(.*?)[\s|#|@|$)]",a)
print(title)
但是,如果没有其他符号分隔两个主题标签,我无法让 re.findall 解析第二个主题标签。
结果:
['title5jdflkgjdlkf*jg', 'title34', 'fkgjdlfkj^']
谢谢你们!
解决方案
您需要使用“前瞻”来防止上一个匹配项消耗下一个匹配项的井号。
此代码应适用于您的所有标签:
import re
a = u"lşkdjflkgtitle10#title5jdflkgjdlkf*jg lkp&fjgld#title34 kjgdl #fkgjdlfkj^#title10 "
title = re.findall(r"[#@]([^\s#@$]*)(?=[\s#@$])", a)
print(title)
推荐阅读
- java - Java Weka - 如何标准化单个实例
- ios - 如何获取 EKEvent 的下一个发生日期?
- java - Java - 将用户输入数据传递给 if / else 语句
- javascript - 单击按钮时关闭模式?
- codeigniter - Codeigniter 3 - 查询生成器“加入”方法“!=”运算符未提供预期输出
- c - 为什么要重置全局静态变量?
- angular - JHipster-Angular 5:使用来自另一个模块的服务以状态码结束:401 Unauthorized
- linux - python3-yaml 需要依赖 python3-yaml
- django - Django REST 框架中的命名空间超链接序列化程序
- android - 如何在服务使用线程中发出请求 OkHttp?