2017-02-28 5 views
-1

私は1,000,000のPDFファイルを持っており、そこからデータをスクラップしてデータベースを構築します。それらが生産こするようないくつかのデータ:pythonの正規表現を使用して文章内の別の部分を分割します

 Mobile: 98-912-7990154Home: [email protected] 12 - No. 15 - West 19th Alley - South Varzi St. -West Ferdows Blvd. - Sadeghiyeh Sq.1483676479,Tehran

は、どのように私はそれらを分割することができますなどのデータている:

 
Mobile: 98-912-7990154 
Home: 98-21-44157129 
Email: [email protected] 
Address : Unit 12 - No. 15 - West 19th Alley - South Varzi St. -West Ferdows Blvd. - Sadeghiyeh Sq.1483676479,Tehran 
+0

あなたは何をしようとしましたか? 'ppouriya @ yahoo.comUnit'の間にスペースや改行がありますか? – depperm

+1

フィールドの順序は常に同じですか?彼らに価値がない場合、彼らはどのように見えますか? (たとえば、自宅番号のない人、または電子メールがない人) –

+0

いつもこの4つのフィールドになるのですか、それとももっとありますか? –

答えて

1

だから、あなたは、このようなHomeEmailAddressとして、分割線のための「マーク」を持っています。

regexを使用している場合は、wordの場所を見つけることができます。

[(m.start(0), m.end(0)) for m in re.finditer(pattern, string)]

例:

import re 

data = 'Mobile: 98-912-7990154Home: [email protected] 12 - No. 15 - West 19th Alley - South Varzi St. -West Ferdows Blvd. - Sadeghiyeh Sq.1483676479,Tehran' 
p = re.search("Home", data) 

これはワードHomeの位置を返します。開始位置はp[0]なので、この情報でdataを分割することもできます。

+0

メールや携帯電話番号がないものがあります –

+0

@OmidGoudaziは存在しているキーワードのインデックスを返すだけなので、問題ありません。 –

+0

この部分への注意:ホーム:[email protected]ユニット12 - 15番ウェスト19th Alley - South Varzi St. - West Ferdows Blvd. - Sadeghiyeh Sq.1483676479、Tehran –

関連する問題