代码之家  ›  专栏  ›  技术社区  ›  OrElse

查找和替换算法

  •  1
  • OrElse  · 技术社区  · 14 年前

    我有一些文本文件包含

    <img width="100" <img width="1400" 或者…

    由于图像宽度不是静态的,我如何用下面的内容替换上面的所有内容?

    <img width="200"
    
    1 回复  |  直到 14 年前
        1
  •  1
  •   Mark Byers    14 年前

    对于基于正则表达式的解决方案,可以使用以下方法:

    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 .

    如果文件太大,无法读取内存,您可能希望一次处理一行文件。

    有时,最好是写入临时文件,并在确定写入成功后删除原始文件。