基于符号捕获单词

时间:2017-10-17 10:01:06

标签: python regex

我有一堆像这样的字符串:“今天我卖了MSFT 100 @ 50然后去睡觉了!”

所以我想解析3个字符串并将它们变成变量。我想解析出售,100,50。

所以当我使用(买|卖)。*(\ d +)@(\ d +)时,第一个(\ d +)返回0,当我想返回100时。

2 个答案:

答案 0 :(得分:1)

我现在根据你的编辑了解:

(bought|sold).*?(\d+)@(\d+)

这里的技巧是,在您的示例中,“。*”匹配尽可能多的字符,只留下一个数字与后续“\ d +”匹配。添加'?'使它不合适,所以它将匹配尽可能少的字符。

答案 1 :(得分:0)

如果文字与" MSFT @ 50"一致,那么您可以使用以下内容:

import re
re.findall(r'[A-Za-z]+@[0-9]+', <your srting here>)

希望有所帮助