搜索字符串中的特定情况

时间:2015-08-18 18:21:47

标签: python python-3.x

我正在制作一个需要做出反应的机器人:

!bid [钥匙数量]

但是,当人们写出像

这样的东西时

哦,好吧,只需使用!bid。

它不应该算作命令。如何检查comment.body是否在此确切模板中。因此,当它被用作句子时,它不算数。

2 个答案:

答案 0 :(得分:2)

你可以使用正则表达式

>>> import re
>>> s = '''this is a sentence with !bid [7.5] but this !bid doesn't count but !bid [12] does'''

您可以使用模式'\!bid \[\d+\.?\d+?\]'查找符合条件的所有字符串实例

>>> re.findall('\!bid \[\d+\.?\d+?\]', s)
['!bid [7.5]', '!bid [12]']

或者,如果您只想在[]之间提取文本,则可以使用捕获组

>>> re.findall('\!bid \[(\d+\.?\d+?)\]', s)
['7.5', '12']

答案 1 :(得分:0)

嗯,你可以:

if comment.startswith('!bid'):
    command, rest = comment.split(' ', 1)

之后,command == '!bid'rest是该行的其余部分