我有一堆这样的字符串:“今天我卖了MSFT 100 @ 50,然后上床睡觉!”基于符号的捕获词
所以我想解析出3个字符串并将它们变成变量。我想解析出售,100,50.
因此,当我使用(买卖|出售)。*(\ d +)@(\ d +)第一个(\ d +)返回0,当我想返回100 。
我有一堆这样的字符串:“今天我卖了MSFT 100 @ 50,然后上床睡觉!”基于符号的捕获词
所以我想解析出3个字符串并将它们变成变量。我想解析出售,100,50.
因此,当我使用(买卖|出售)。*(\ d +)@(\ d +)第一个(\ d +)返回0,当我想返回100 。
我现在根据您的修改明白:
(bought|sold).*?(\d+)@(\d+)
这里的窍门是,在你的榜样,尽可能多的字符可能,只留下由后续匹配的一个数字“匹配“*”。 \ d +”。添加'?'这使得它很不理智,所以它会匹配尽可能少的字符。
如果文本会像“MSFT @ 50”一致的,那么你可以使用下列内容:
import re
re.findall(r'[A-Za-z][email protected][0-9]+', <your srting here>)
希望它可以帮助
有什么模式?请解释更多。 – Maroun