title: Python regular expression (regex) match comma separated number - why does this not work?
body: <p>I am trying to parse transaction letters from my (German) bank.
  I'd like to extract all the numbers from the following string which turns out to be harder than I thought.
  Option 2 does almost what I want. I now want to modify it to capture e.g. 80 as well. </p>
  
  <p>My first try is option 1 which only returns garbage. Why is it returning so many empty strings? It should always have at least a number from the first \d+, no?</p>
  
  <p>Option 3 works (or at least works as expected), so somehow I am answering my own question. I guess I'm mostly banging my head about why option 2 does not work.</p>
  
  <pre><code># -*- coding: utf-8 -*-
  import re
  
  
  my_str = """
  Dividendengutschrift für inländische Wertpapiere
  
  Depotinhaber    : ME
  
  Extag           :  18.04.2013          Bruttodividende
  Zahlungstag     :  18.04.2013          pro Stück       :       0,9800 EUR
  Valuta          :  18.04.2013
  
                                         Bruttodividende :        78,40 EUR
                                        *Einbeh. Steuer  :        20,67 EUR
                                         Nettodividende  :        78,40 EUR
  
                                         Endbetrag       :        57,73 EUR
  """
  
  print re.findall(r'\d+(,\d+)?', my_str)
  print re.findall(r'\d+,\d+', my_str)
  print re.findall(r'[-+]?\d*,\d+|\d+', my_str)
  </code></pre>
  
  <p>Output is</p>
  
  <pre><code>['', '', '', '', '', '', ',98', '', '', '', '', ',40', ',67', ',40', ',73']
  ['0,9800', '78,40', '20,67', '78,40', '57,73']
  ['18', '04', '2013', '18', '04', '2013', '0,9800', '18', '04', '2013', '78,40', '20,67', '78,40', '57,73']
  </code></pre>