2017-06-16 67 views
3

我有一個非常大的HTML文件,其中包含安全掃描的結果,我需要將無用的信息從文檔中提取出來。我需要拉出的一個例子看起來像這樣:使用正則表達式在記事本++中選擇並替換多行

<tr> 
<td width="20%" valign="top" class="classcell0"><span class="classtext" style="color: #ffffff; font-weight: bold !important;">Info</span></td> 
<td width="10%" valign="top" class="classcell"> <a href="http://www.nessus.org/plugins/index.php?view=single&amp;id=10395" target="_blank"> 10395</a> 
</td> 
<td width="70%" valign="top" class="classcell"><span class="classtext" style="color: #263645; font-weight: normal;">Microsoft Windows SMB Shares Enumeration</span></td> 
</tr> 

編輯後,上面的文本應該被刪除。由於變化,我無法做到標準查找。以下是對需要從文件中移除另一個例子:

<tr> 
<td width="20%" valign="top" class="classcell0"><span class="classtext" style="color: #ffffff; font-weight: bold !important;">Info</span></td> 
<td width="10%" valign="top" class="classcell"> <a href="http://www.nessus.org/plugins/index.php?view=single&amp;id=11219" target="_blank"> 11219</a> 
</td> 
<td width="70%" valign="top" class="classcell"><span class="classtext" style="color: #263645; font-weight: normal;">Nessus SYN scanner</span></td> 
</tr> 

我需要把身份證號碼,10395,作爲一個變量,但長度保持不變。此外,「Microsoft Windows SMB共享枚舉」也需要被視爲一個變量,因爲它在整個文檔中都會發生變化。

我試過把這樣的東西扔進替換,但我想我完全錯過了這個標記。

<td width="10%" valign="top" class="classcell"> <a href="http://www.nessus.org/plugins/index.php?view=single&amp;id=\1\1\1\1\1" target="_blank"> \1\1\1\1\1</a> 

也許我應該一起使用不同的工具?

+1

你想轉化爲什麼?更改後文檔應該是什麼樣子? (這是一個逐行匹配和替換?) – Tezra

+0

@Tezra我只是想刪除這些片段,所以只是用空格或\ n來替換它們。如果我按照我目前的想法進行處理,那麼每次總共需要更換6條線。 – creigel

+2

所以你想刪除顯示文字部分?你能否在問題後添加它應該看起來像什麼的例子? – Tezra

回答

1

我假設重複\1多次你的意思是一個單個字符的佔位符,但這是不正確的。你所試圖實現是這樣的:

<td width="10%" valign="top" class="classcell"> <a href="http://www.nessus.org/plugins/index.php?view=single&amp;id=(\d+)" target="_blank"> \1</a> 

爲了配合整個6號線:

<tr>\s*<td width="20%" valign="top" class="classcell0"><span class="classtext" style="color: #ffffff; font-weight: bold !important;">Info</span></td>\s*<td width="10%" valign="top" class="classcell"> <a href="http://www\.nessus\.org/plugins/index\.php\?view=single&amp;id=(\d+)" target="_blank"> \1</a>\s*</td>\s*<td width="70%" valign="top" class="classcell"><span class="classtext" style="color: #263645; font-weight: normal;">.*?</span></td>\s*</tr> 

然後,你可以用一個空字符串替換它。

+0

非常感謝!像魅力一樣工作! – creigel

1

正則表達式,以便從最複雜的更復雜,但他們都完成工作:

<a.*>.*\d.*</a> 

<a.*>.*\d{5}.*</a> 

<a.*id=\d{5}.*>.*\d{5}.*</a> 

免責聲明:be careful。我無法用正則表達式解析html。

+0

這對單線來說非常棒。感謝您的答覆。 – creigel