从文本文件中删除<div class =“”>代码块</div>

时间:2014-06-19 14:18:35

标签: html

我从.html文件中提取了一些信息并将其放入文本文件中。 信息就在那里,但有一段时间我会有这样的事情出现:

info, info...
info, info...

    <div class="ratings-link"> <img alt="arrows" class="icon" src= bla bla...</a></div>"

info, info...
info, info...

我想要做的基本上是删除所有不是信息的东西。 (摆脱:

<div class="ratings-link" ....bla bla... </a></div> 

一起。

实现这一目标的最佳方式/工具是什么?我用scanf写了一个C程序但是它 不会工作,因为并非所有这些div都有相同的结束字符串。但他们都有分享 同样提到的模式。

3 个答案:

答案 0 :(得分:1)

如果这是我,我会用PHP或Python编写一个快速脚本来执行此操作。

PHP有strip_tags函数: http://www.php.net//manual/en/function.strip-tags.php

Python有一个名为beautiful soup的库,它非常成熟,非常适合这种事情: http://www.crummy.com/software/BeautifulSoup/

或者任何支持正则表达式支持删除所有匹配项的语言&lt; [^&gt;] *&gt;

答案 1 :(得分:0)

您可以在几乎所有编程语言中使用RegEx来过滤文本并删除不需要的信息。

在您的情况下,相关的正则表达式将是:<[^>]*>

这是c#中的一个例子:

using System;
using System.Text.RegularExpressions;
public class Program
{
    static string myString =  "info, info..." + 
    Environment.NewLine + "info, info..." + 
    Environment.NewLine + "<div class='ratings-link'> <img alt='arrows' class='icon' src= bla bla...</a></div>" + 
    Environment.NewLine + "info, info..." + 
    Environment.NewLine + "info, info...";
    public static void Main()
    {
        String result = Regex.Replace(myString, @"<[^>]*>", String.Empty);
        Console.WriteLine(result);
    }
}

Live Example

答案 2 :(得分:0)

您实际上要做的是从文本中删除任何html标记。偶尔通过复制和粘贴剥离标签的最简单方法是使用http://www.striphtml.com/之类的在线工具,或者更方便http://www.zubrag.com/tools/html-tags-stripper.php,它提供了输入要删除的URL的替代方法(使提取文本首先过时) )并允许您选择可能要排除的标签。

如果我误解了你,并且你打算写一些html脱衣舞程序,那么,我所知道的每种语言/平台都有功能,那就完全可以实现。 PHP f.e.具有strip_tags()功能。