我有很多这样的行:
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 shell 中执行此操作,但我已经在 python 中完成了一个大解析器,它输出这样的行。所以我想用 Python 完成所有这些,这就是为什么我正在寻找一个干净的代码和一些解释,因为我将来可能有很多这样的“过滤器”要做。
[update]13480
应该始终是数字,如果不是,则应引发异常。