2010-09-09 3 views
1

у меня есть некоторые текстовые файлы, которые содержатНайти и заменить алгоритм

<img width="100" или <img width="1400" или ....

Как я мог бы заменить все выше со следующим, так как ширина изображения не является статическим?

<img width="200" 
+0

Текстовые файлы или файлы HTML? Если они просто текстовые файлы, они отформатированы равномерно, и если да, то как? – Oded

+0

Unicode Текстовые файлы – OrElse

ответ

1

Для регулярного решения на основе выражения можно использовать следующим образом:

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

Это будет работать, если ваши файлы из надежного источника в формате, который вы контролируете. Если нет, и это HTML, вы можете посмотреть на HTML-парсер, например HTML Agility Pack.

Если файлы слишком велики для чтения в память, вы можете обрабатывать файл по одной строке за раз.

Иногда также может быть хорошей идеей писать во временный файл и удалять только оригинальный файл, только если вы уверены, что запись выполнена.

+0

+1 для упоминания HTML Agility Pack –