2012-01-16 21 views
0

私はそうのようないくつかのサンプルデータを持っている:私は最後に必要なものPythonの正規表現

MADISON COUNTY,,,,,,,,,,,,, "London, City of",,,,,,,,,,,,597,519 
2.1,mill /s,(replacement),for,5 years,",",commencing in,2007,",",first due in calendar year,2008,",",, for current operating expenses 
-,,,,,,,,,,,,, London Public Library District,,,,,,,,,,,,716,869 1.2,mill /s,(replacement),"& increase of 1.7 mills, for 15 years, commencing in 2007, first due in",,,,,,,,,, "calendar year 2008, for 
current expenses -",,,,,,,,,,,,, "Range, Township of",,,,,,,,,,,,62,13 
1.7,mill /s,(renewal),for,5 years,",",commencing in,2007,",",first due in calendar year,2008,",",, for fire protection -,,,,,,,,,,,,, 

は、すべての「町」のリストであるため、出力は次のようになります。

["London, City of", "London Public Library District", "Range, Township of"] 

私はちょうどこれらの分野に絞る方法に本当にわからないので、ここで少し苦労しています。あなたが見ることができるように、コンマのシリーズはかなり良いスタートですが、パターンに従わないコンマの不要な文字列もあります。もともと私は長さ< 100文字の文字列の両側に5つのカンマで一致だろうと思ったが、これはここで、任意のカンマでイライラされています

first due in",,,,,,,,,, "cale 

任意の手がかり?

さらに、データは、この形式で一般的である:

SOME COUNTY,,,,,,,,,,,,, SOME TOWN,,,,,,,,,,,,some long string possibly with commas 
,,,,,,,,,,,,, SOME TOWN,,,,,,,,,,,,some long string possibly with commas ... etc 
+4

これはCSVファイルです。 ['csv'モジュール](http://docs.python.org/library/csv.html)を使用してください。 –

答えて

0

私がそれに余分な改行を持っていると思うと、あなたのサンプルデータから伝えるのは難しいですが、データ形式のあなたの概要から、それはそうですタウンは各行の14番目の列であること

データがCSV形式であるため、正規表現を使用する必要はなく、代わりにthe csv moduleを使用してデータを解析できます。町の名前を抽出するのは簡単です:

import csv 

with open('data.csv') as f: 
    for row in csv.reader(f): 
     print row[13] 
+0

私はコンマの可変長シーケンスが心配でしたが、空のcsvエントリをすべて取り出してしまったので、完全に機能しました。先端に感謝します。 – Oliver