2010-12-22 46 views
1

我有一个html文本文件,我试图删除表格中的任何HTML标签,即删除<TABLE></TABLE>标签中的任何HTML。这个正则表达式在vb.NET中有什么问题?

然而,什么是真正奇怪的是,我使用正则表达式, (?<=<table((?!</table).)*)<(?!/table)[^>]+>, 在PowerGREP或专业的EditPad然而完美的作品,当vb.NET(或快报)应用到同样的文本,它不工作!

我只是用一个简单的替换方法:newString = Regex.Replace(oldString, "(?<=<table((?!</table).)*)<(?!/table)[^>]+>", string.Empty, RegexOptions.IgnoreCase)

我得到完全糊涂了,我想知道如果有人能帮助我,看看为什么是这样的话,我需要什么样的变化,使为了使它在.NET中工作。谢谢!

下面是示例文本:

================ 
texttexetext 

<TABLE> 

    <TAG1> 

    <TAG2>tabletext<TAG3> 

    <TAG4> 

</TABLE> 

texttexttext 
=============== 

在PowerGREP最终输出

================ 
texttexetext 

<TABLE> 


tabletext 


</TABLE> 

texttexttext 
=============== 
+0

很难在没有看到相应的VB代码的情况下猜出错误。另外,一般来说,为了从HTML中可靠地提取信息,最好使用HTML解析器(如HTML敏捷包),因为HTML的语法不规则。正则表达式经常在解析解决方案中由标记器使用,但不是全部。 – JasonTrue 2010-12-22 18:47:05

回答

0

它工作在EditPadPro 如果指定点匹配换行符模式。我没有看到你在VB代码中这样做。

相关问题