如果我的字符串包含格式为< @ tag>的标签如:
text ="在此测试中,我标记< @ bill>,< @ Jennifer>,最后< @ bob>。"
如何获取为了迭代标记而提取的标记的python列表。
['纸币''珍''摆锤']
虽然这将特别应用于我正在研究的Slack Chatops Bot,但我将其保留为通用,因为它可能对其他东西有用。我没有在如何通过一个像样的谷歌搜索解决它,并且Stack Exchange中的建议问题已经没有涉及到这一点。
谢谢! 尼克
答案 0 :(得分:4)
您可以使用正则表达式:
import re
text = "In this test I tag <@bill>, <@Jennifer>, and lastly <@bob>."
print(re.findall('<@(.+?)>', text)) # ['bill', 'Jennifer', 'bob']
基本解释:
()
表示一个捕获组,即“为我提取此部分”.
表示“任何角色”.+
表示“任何字符一次或多次”.+?
表示“任何字符一次或多次,但尽可能少”,否则会包含>
以及之后的更多字符: print(re.findall('<@(.+)>', text)) # ['bill>, <@Jennifer>, and lastly <@bob']