私はこのような文字列を持っています: "今日、私はMSFT100 @ 50を売ってから寝ました!"記号に基づいて単語をキャプチャします
私は3つの文字列を解析し、それらを変数にしたいと思っています。私が使用している場合ので、販売を解析するために100、50
たい(購入|販売)。*(\ D +)、@(\ D +)(\ D +)最初、私は100を返すようにしたい場合は、0を返します。 。
私はこのような文字列を持っています: "今日、私はMSFT100 @ 50を売ってから寝ました!"記号に基づいて単語をキャプチャします
私は3つの文字列を解析し、それらを変数にしたいと思っています。私が使用している場合ので、販売を解析するために100、50
たい(購入|販売)。*(\ D +)、@(\ D +)(\ D +)最初、私は100を返すようにしたい場合は、0を返します。 。
私は今、あなたの編集に基づいて理解:
(bought|sold).*?(\d+)@(\d+)
ここにトリックはあなたの例では、「それ以降にマッチしただけで一桁を残して、できるだけ多くの文字を、一致する、ということです「*。」 \ d + "となります。 '?'を追加するそれは不公平になるので、可能な限り少ない文字数に一致します。
テキストは、あなたが以下のように使用することができ、「50 @ MSFT」のような一致するであろう場合:
import re
re.findall(r'[A-Za-z][email protected][0-9]+', <your srting here>)
が、それはパターン何
を役に立てば幸い?もっと説明してください。 – Maroun