2017-01-22 15 views
0

私はつぶやきのリストを持っています。株価指数の正規表現 - Python

data = [['trading $aa $BB stock market info'], 
     ['$aa is $116 market is doing well $cc $ABC']] 

私は株価情報を抽出したい::彼らはこのようになり

['$aa', '$BB'] 
['$aa', '$cc', '$ABC']] 

私はこれ試してみました:

for i in data: 
    print re.findall(r'[$]\S*', str(i)) 

をそして、出力も$ 116含まれています

['$aa', '$BB'] 
['$aa', '$116', '$cc', '$ABC']] 

提案がありますか?

+2

あなただけではなく、手紙をしたい場合は、あなたが使用することができ、 '[a-zA-Z]の'の代わりに '\のS' 。あなたのティッカーが何であるかによって異なります。あなたはおそらく '*'の代わりに '+'を使いたいでしょう。さもなければ、数字の前にあるドル記号を番号なしでマッチさせます。 – Amber

+0

これは意味があります。ありがとう! – kevin

+0

テロップに数字を含めることができますが、少なくとも1文字は含まなければならない場合は、\ $(\ d * [a-zA-Z] + \ d *)+ ' –

答えて

1

マッチドル記号、スペースはありません1つの文字と、その後は何も:

re.findall(r'[$][A-Za-z][\S]*', str(i))