林相當肯定這是非常基本的。但是我不知道Perl,只需要使用它一次。所以我感謝你的耐心。低於該Perl腳本從一個文件中刪除單詞到輸出文件
我想從一個單行刪除不需要的文本是在HTML:
<a target="_blank" href="http://sharepoint/sites/cerner/quickreferenceguides/Documents/EXP001_Run_Printable_TCI_List.pdf" onmouseover="return overlib('This guide outlines the process for running a printable TCI List', CAPTION, 'TCI LIST');" onmouseout="return nd();">Run Printable TCI List (<i>Revised<i>)</a>
所有我想被留下的是Run Printable TCI List (<i>Revised</i>)
是在</a>
之前結束的文本。我有大約500條這樣的線路,並且由於它們將來可以改變,所以創建一個程序是有意義的。下面是我的Perl代碼至今:
open (SEARK, 'C:\\HTMLsorter\\sources.txt');
open (OUTSEARK, '>C:\\HTMLsorter\\outseark.txt');
while(<SEARK>) {
chomp;
if ($_=~/<a target/) {
$_ =~ s/\<i>//g;
$_ =~ s/\<\/i>//g;
@itemsa = split(/>/);
@itemsb = split(/</, $itemsa[1]);
print OUTSEARK ("$itemsb[0]\n");
}
}
close (SEARK);
close (OUTSEARK);
我敢肯定,你可以閱讀這只是說明那裏有要排序的500行,我打開一個叫sources.txt
文件。輸出文件將是outseark.txt
。到目前爲止,它會輸出這樣的:
Run Printable TCI List (Revised)
這顯然是由於拆分瞄準和周圍的箭頭的一切。任何想法如何將斜體保留在括號內?要留下:
Run Printable TCI List (<i>Revised<i>)
感謝您的期待。
我不明白的問題。當應用於樣本數據時,您的代碼會完全生成您所需的輸出(減去雙引號)。是否可以通過在以後添加's \\ // g'等來修復它? – Borodin 2012-04-11 16:13:32
那麼問題是我想離開那些的,因爲他們在那裏是有原因的。很抱歉,因爲我在這一點上正在調查,以檢查是否確實是問題。感謝您的評論。 – Marshal 2012-04-18 09:14:12
我現在看到爲什麼我誤解了你的問題。 StackOverflow標記吞噬了您使用的HTML標記,並且它們在顯示的問題中不可見。另外,您發佈的兩個示例輸出字符串與其中一個虛假雙引號相同。我編輯了你的帖子以顯示我認爲你打算的內容,並且還添加了我的答案以提供新的工作解決方案。請讓我知道我的假設是否正確。 – Borodin 2012-04-19 11:09:28