看板 Perl 關於我們 聯絡資訊
將你的檔內容存成temp1.txt跟temp2.txt ############################################################################## open f1,"<temp2.txt"; chomp(@pattern=<f1>); close f1; open f1,"<temp1.txt"; while ($line=<f1>){ for (@pattern){ $flag=($line=~s/$_/<NP>/) ; print $line if ($flag); } } close f1; ############################################################################## 個人是覺得廢字還是太多.......應該還有更多改進空間... ※ 引述《Yaowei (成就你的大事)》之銘言: : 我現在的想法是將檔案2先讀進來 : 然後存在一個陣列中 : 然後再將檔案1進行讀檔的動作 : 只是現在卡在比對的方式 : 因為若直接比對陣列,好像不能直接比到?(常規表示式) : 二來若改成將檔案2讀進來 : 存成一個hash : 那麼應該是只要可以在hash中可以找到的話 : 則不需要像array那樣子重頭比到完 : 只是不確定若用hash的話 那麼它的程式要如何來表示= = ? : 若有人知道願意分享討論的 就先謝過了^^ : ※ 引述《Yaowei (成就你的大事)》之銘言: : : 若我有一個檔案1內容有多個句子。分別是以\n為一行存起來 : : 例如: : : I am a teacher. : : They are people. : : You are a undergraduate school student. : : He is a boy. : : She is a girl. : : She is your best friend. : : ------------------------------------------- : : 我又有一個檔案2,內存著以下資料,也是以\n做分隔 : : teacher : : undergraduate school student : : best friend : : ------------------------------------------------- : : 若我希望將檔案1內的資料透過使用檔案2的資料只要有比對到的話 : : 則替換成我要的標籤。 : : 希望印出來的結果如下: : : I am a <NP>. : : You are a <NP>. : : She is your <NP>. : : ------------------------- : : 謝謝了= =+ 感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.123.199
imce:我總覺得應該用map或是grep來做處理,等我的電腦修好在來研究 03/11 12:31
abliou:好像是不錯的主意.. 03/11 13:47
abliou:我也來研究看看 03/11 13:52
Yaowei:先感謝大家 小弟好好研究一下^^ 03/11 18:13