我有一堆像这样的字符串:“今天我卖了MSFT 100 @ 50然后去睡觉了!”
所以我想解析3个字符串并将它们变成变量。我想解析出售,100,50。
所以当我使用(买|卖)。*(\ d +)@(\ d +)时,第一个(\ d +)返回0,当我想返回100时。
答案 0 :(得分:1)
我现在根据你的编辑了解:
(bought|sold).*?(\d+)@(\d+)
这里的技巧是,在您的示例中,“。*”匹配尽可能多的字符,只留下一个数字与后续“\ d +”匹配。添加'?'使它不合适,所以它将匹配尽可能少的字符。
答案 1 :(得分:0)
如果文字与" MSFT @ 50"一致,那么您可以使用以下内容:
import re
re.findall(r'[A-Za-z]+@[0-9]+', <your srting here>)
希望有所帮助