私はこのような行をたくさん持っています:
13480 AAA BBB CCC
Pythonを使用して次のように変換したいと思います。
SELECT XX FROM YY WHERE SOUNDEX("AAA BBB CCC")=FIELD1 AND CP="13480"
AAA BBB CCC
「 」が町であることを知っているのでAAA BBB CCC
、「AAA BBB
」、「AAA-BBB-CCC
」、「」、「AAA
」、「」L'AAA
、 「 D'AAA BBB
」 、「」である可能性がありますD'AAA..
。さて、番号の直後の行の終わりは町の名前です。
したがって、次のような行を含む大きなファイル:
06260 Puget Théniers
06620 Bar sur Loup (Le)
06640 SAINT JEANNET
06640 Saint Jeannet
06660 AURON
06660 SAINT ETIENNE DE TINEE
06660 Saint Etienne de Tinée
06670 Levens
06710 Touët sur Var
06750 ANDON
06750 Thorenc
のようなものになってしまうだろう
SOUNDEX("Puget Théniers") AND CP="06260"
SOUNDEX("Bar sur Loup (Le)") AND CP="06620"
SOUNDEX("SAINT JEANNET") AND CP="06640"
SOUNDEX("Saint Jeannet") AND CP="06640"
SOUNDEX("AURON") AND CP="06660"
SOUNDEX("SAINT ETIENNE DE TINEE") AND CP="06660"
SOUNDEX("Saint Etienne de Tinée") AND CP="06660"
SOUNDEX("Levens") AND CP="06670"
SOUNDEX("Touët sur Var") AND CP="06710"
SOUNDEX("ANDON") AND CP="06750"
SOUNDEX("Thorenc") AND CP="06750"
始めるための最良/最もクリーンな方法は何ですか?
正規表現を使用してbashシェルでこれを実行できることは知っていますが、このような行を出力するPythonでの大きなパーサーをすでに実行しています。ですから、これらすべてをPythonで終了したいと思います。そのため、将来的にはこのような「フィルター」がたくさんある可能性があるため、クリーンなコードと説明を探しています。
[更新]13480
は常に数字である必要があり、そうでない場合は例外を発生させる必要があります。