2010-09-09 8 views
1

j'ai quelques fichiers texte qui contiennentRechercher et remplacer l'algorithme

<img width="100" ou <img width="1400" ou ....

Comment pourrais-je remplacer tous ci-dessus avec ce qui suit, puisque la largeur de l'image n'est pas statique?

<img width="200" 
+0

Fichiers texte ou fichiers HTML? Si ce sont simplement des fichiers texte, sont-ils formatés uniformément, et si oui, comment? – Oded

+0

Fichiers texte Unicode – OrElse

Répondre

1

Pour une solution d'expression régulière, vous pouvez utiliser ceci:

string path = "input.html"; 
string s = File.ReadAllText(path); 
s = Regex.Replace(s, @"<img width=""\d+""", @"<img width=""200"""); 
File.WriteAllText(path, s); 

Il ne fonctionnera que si vos fichiers sont d'une source fiable dans un format que vous contrôlez. Si ce n'est pas le cas et qu'il s'agit de HTML, vous pourriez vouloir regarder un analyseur HTML tel que HTML Agility Pack.

Si les fichiers sont trop volumineux pour être lus en mémoire, vous pouvez gérer le fichier une ligne à la fois.

Il peut également être judicieux d'écrire dans un fichier temporaire et de supprimer uniquement le fichier d'origine une fois que vous êtes sûr que l'écriture a réussi.

+0

+1 pour mention HTML Pack d'agilité –