2010-12-22 69 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代碼中這樣做。

相關問題