Python:从包含标签的字符串创建列表

时间:2017-05-01 20:36:33

标签: python slack-api slack

如果我的字符串包含格式为< @ tag>的标签如:

  

text ="在此测试中,我标记< @ bill>,< @ Jennifer>,最后< @ bob>。"

如何获取为了迭代标记而提取的标记的python列表。

['纸币''珍''摆锤']

虽然这将特别应用于我正在研究的S​​lack Chatops Bot,但我将其保留为通用,因为它可能对其他东西有用。我没有在如何通过一个像样的谷歌搜索解决它,并且Stack Exchange中的建议问题已经没有涉及到这一点。

谢谢! 尼克

1 个答案:

答案 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']