2016-09-25 14 views
0

私はGoogleのlibphonenumbersのPython版を使用していますが、別のテキストでこのライブラリを試したときに、時にはpython関数が何も返さないそこに電話番号があり、電話番号を返すこともあります。以下を参照してください:Python:libphonenumber - 明白な電話番号を抽出できません

print(x2) 
for match in pnum.PhoneNumberMatcher(x2, "US"): 
print(match) #for the text above, it did not get the number 

を出力:

I just read your profile and thought it was really great. I also thought you were cute and loved the fact that you go hiking with your brothers every summer. If you want to know anything more about me, just ask. My num 555-121-5468. 

上記このテキストを、それは私に任意の電話番号を返しません。 しかし、次のような他の状況では、この機能は私に正しい入力できます:

x9 = "hay I hate to cut you short, its been fun chatting, but unfortuantely I gotta run. I am gald we became friends though. my number is (323) 2387890" 

for match in pnum.PhoneNumberMatcher(x9, "US"): 
print(match) 

出力:私は問題がこの問題を引き起こしているのか分からない

PhoneNumberMatch [132,145) (323) 2387890 

、私は、Pythonに新しいですがこの図書館は誠実に洞察力を評価するでしょう。

答えて

1

555-121-5468は米国の有効な電話番号のようですが、実際はそうではありません。

PhoneNumberMatcherクラスconstructorは、クラスが候補の電話番号(code)とどれだけ厳密に一致するかを定義する引数leniencyを受け入れます。この引数の可能な値leniencyのデフォルト値は1で、有効な電話番号と一致します。これを0に変更すると、555-121-5468のような可能な電話番号と一致します。

>>> for match in pnum.PhoneNumberMatcher(x2, 'US', leniency=0): 
print(match) 
... 
PhoneNumberMatch [220,232) 555-121-5468 

555のプレフィックスは、実際のプレフィックスではありませんが、米国のテレビや映画館の架空の電話番号に使用されています。 Wikipediaから:接頭辞

電話番号555は、広く悩まから実用的なジョーカーと 好奇心発信者を防ぐために、北米のテレビ番組、映画、ビデオ ゲーム、その他のメディアに架空の 電話番号に使用されています実際の人々と組織 フィクションの作品に表示されている番号に電話する;一般的に北北では アメリカ、接頭辞として555の数字は実際の 人には接続しません。

関連する問題