import re
for line in data :
line = re.sub(r"(905) ", "905-", line)
print(line)
3 Réponses :
Échappez les crochets dans RE comme ceci
re.sub(r"\(905\) ", "905-", line)
Vous devez échapper les parenthèses car ce sont des caractères spéciaux:
9 7 316 Lake St Arran Dr St. Catharines, ON L2N 4H4 Phone: 905-934-5885 112.9 123 130 --- 1/1/18 10 Esso 142 Lakeshore Rd Geneva St St. Catharines, ON L2N 2T5 Phone: 905-646-4558 112.7 125.9 131.9 --- 1/1/18 11 Petro-Canada 533 Lake St Linwell Rd St. Catharines, ON L2N 4H6 Phone: 905-937-7719 112.9 125.9 131.9 124.9 1/1/18
Sortie:
for line in data :
line = re.sub("\(905\) ", "905-", line)
print(line)
Si tout ce que vous voulez est un simple remplacement, vous ne devriez pas utiliser re:
line = re.sub(r"\((\d{3})\) ", r"\1-", line)
Si vous devez remplacer plus préfixes que 905 , alors seulement vous avez besoin d'expressions régulières:
line = line.replace("(905) ", "905-")
Cela remplacerait également (204) 342-4532 par 204-342-4532 .
Ce ne sont pas des informations privées, n'est-ce pas? Cela semble être du contenu accessible au public, mais je veux juste m'en assurer. Edit: Je me suis assuré qu'au moins l'adresse et le numéro de téléphone sont publics.
Pouvez-vous publier un code qui place les données que vous utilisez dans
data?@wjandrea: "Plus maintenant."
@ScottHunter Enregistrez les données sous
sample.txt, puis exécutezavec open ('sample.txt') sous f: data = f.read (). Splitlines ().