2008年11月17日星期一

Re: [PerlChina] China-pm Digest, Vol 43, Issue 21



2008/11/17 owen nirvana <freeespeech@gmail.com>
谢谢,问题是归到上一行这样的操作,我不知道如何用正则表达式完成,那不等于是让表达式再回溯吗
gtalk:freeespeech@gmail.com


>>
>>
>> 还有一个问题,是关于提取数据的
>>
>> 2222  eewweasdds,asdasd.sadsadasdas
>>          ddasdddddddddddddddddddda
>>          ddddddddddddddddddddddddddd
>> 2821  easdddddddddddddddddddddddd
>> 2192  288888888888888888888ass0a-das.
>>          as;dddsaddaa0---------22222222
>>
>> 诸如此类,左边很好办,可是右边并不限于单行,我该如何把这样的数据提取为  name title的格式存到数据表里呢



my ($name, $title);
while (<>){
if (/^(\d+)\s+(.*)$) {
if ($name) {
 // 保存上一个 save $name, $title
 // 下面开始处理一个新的
$name = '';
$title = '';
}
$name = $1;
$title .= $2;
} elsif(/^\s+(.*)$/) {
$title .= $1;
}
// save last one

好久不写了,上面的代码或许会有些错误,大概的流程整理出来了:
每次遇到数字就开始一条数据,否则视为向当前数据中添加title


--
"老是呆在那里不好,我们随生活需要四处迁徙,多年以来的梦想,至今还未实现,压力堵塞了我们的耳朵,工作生涯到了尽头,还是一无所有,我们应该给后人留下点儿什么,教训是不会刻在纪念碑上的,光荣的命令和指引之手,也可请求,简单地改变一下角度就足够了"

没有评论: