作者abliou (Art of Life)
看板perl
标题Re: [问题] 请问使用档案比对时?
时间Sun Mar 11 02:06:05 2007
将你的档内容存成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
1F:推 imce:我总觉得应该用map或是grep来做处理,等我的电脑修好在来研究 03/11 12:31
2F:推 abliou:好像是不错的主意.. 03/11 13:47
3F:推 abliou:我也来研究看看 03/11 13:52
4F:推 Yaowei:先感谢大家 小弟好好研究一下^^ 03/11 18:13