由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Xibei版 - 请教老乡 perl (转载)
相关主题
Re: 急问,妈妈睡眠不好,请问有什么好的保健药么? (转载)帮忙看下我这个Cutting的plan!
说说抑郁症也来试试低碳高蛋白饮食
perl 请教说一下我的减肥经历吧
请教long PCR引物设计本月24号在Canton MI 的比赛到底什么具体情况?
问一个二硫键形成的实验问题【网络文摘】体弱者增强力量的健身计划 —— 支持本版的水深
My Outline of Contributions[转载] 从纯化到星辰---CSH蛋白质纯化课侧记(十)
EB1A写contribution部分小标题分配的问题ASP SORT 一问.
问个数据库问题,即删SORTING 中文 IN ORACLE
相关话题的讨论汇总
话题: field4话题: perl话题: field1话题: 单词话题: file
进入Xibei版参与讨论
1 (共1页)
g***j
发帖数: 40861
1
【 以下文字转载自 Military 讨论区 】
发信人: gshjj (各输己键), 信区: Military
标 题: perl 请教 (转载)
发信站: BBS 未名空间站 (Tue Feb 2 15:33:24 2010, 美东)
发信人: gshjj (各输己键), 信区: CS
标 题: perl 请教
发信站: BBS 未名空间站 (Tue Feb 2 15:32:23 2010, 美东)
是一个作业题
说一个CSV有四列,要求用perl 输出第一列和第四列。第四列或者是一个单词,或者是
两个单词。如果是两个单词,要求输出的时候这两个单词用双引号引起来。
下面是我写的perl
open(in_file," while ($line=)
{
($field1,$field2,$field3,$field4)=split',',$line;
if ($field4=~ /.\s./) {print "$field1, x\n";}
else {print "$
N**********d
发帖数: 9292
2
用\转义双引号吧

【在 g***j 的大作中提到】
: 【 以下文字转载自 Military 讨论区 】
: 发信人: gshjj (各输己键), 信区: Military
: 标 题: perl 请教 (转载)
: 发信站: BBS 未名空间站 (Tue Feb 2 15:33:24 2010, 美东)
: 发信人: gshjj (各输己键), 信区: CS
: 标 题: perl 请教
: 发信站: BBS 未名空间站 (Tue Feb 2 15:32:23 2010, 美东)
: 是一个作业题
: 说一个CSV有四列,要求用perl 输出第一列和第四列。第四列或者是一个单词,或者是
: 两个单词。如果是两个单词,要求输出的时候这两个单词用双引号引起来。

g***j
发帖数: 40861
3
要速度,谢谢啊。
不过还是有点问题啊。
这是我的程序
open(in_file," while ($line=)
{($field1,$field2,$field3,$field4)=split',',$line;
if ($field4=~ /.\s./) {print "$field1,"$field4"";}
else {print "$field1,$field4";}
}
close (in_file);
这是我的结果
TTT,Phenylalanine
TTC,Phenylalanine
TTA,Leucine
TTG,Leucine
TCT,Serine
TCC,Serine
TCA,Serine
TCG,Serine
TAT,Tyrosine
TAC,Tyrosine
TAA,Stop
TAG,Stop
TGT,Cysteine
TGC,Cysteine
TGA,Stop
TGG,Tryptophan
CTT,Leucine
CTC,Leucine
CTA,Le

【在 N**********d 的大作中提到】
: 用\转义双引号吧
N**********d
发帖数: 9292
4
空格不要用\s匹配
换行\n\r,\n,\r都是匹配\s的

【在 g***j 的大作中提到】
: 要速度,谢谢啊。
: 不过还是有点问题啊。
: 这是我的程序
: open(in_file,": while ($line=)
: {($field1,$field2,$field3,$field4)=split',',$line;
: if ($field4=~ /.\s./) {print "$field1,"$field4"";}
: else {print "$field1,$field4";}
: }
: close (in_file);

g***j
发帖数: 40861
5
没懂。
$field4=~ /.\s./ 是为了把 Aspartic Acid 这种两个单词加中间空格的东东从
Alanine 这种一个单词的东东里挑出来。为啥不用 $field4=~ /.\s./ 呢?

【在 N**********d 的大作中提到】
: 空格不要用\s匹配
: 换行\n\r,\n,\r都是匹配\s的

N**********d
发帖数: 9292
6
我不确定。。。。
我稍微懂点reg exp,但是不懂perl没用过
我觉得\s匹配了第四列,第二个单词后面的换行了吧?
必须用perl么?

【在 g***j 的大作中提到】
: 没懂。
: $field4=~ /.\s./ 是为了把 Aspartic Acid 这种两个单词加中间空格的东东从
: Alanine 这种一个单词的东东里挑出来。为啥不用 $field4=~ /.\s./ 呢?

g***j
发帖数: 40861
7
谢谢啊,做出来了
我对编程一点不知道
这只是生物信息学的一道作业
现在我的程序是:
open(in_file," while ($line=)
{($field1,$field2,$field3,$field4)=split',',$line;
if ($field4=~ /.\s./) { chomp($field4); {print "$field1,"$field4"\n";}}
else {print "$field1,$field4";}
}
close (in_file);
谢谢!

【在 N**********d 的大作中提到】
: 我不确定。。。。
: 我稍微懂点reg exp,但是不懂perl没用过
: 我觉得\s匹配了第四列,第二个单词后面的换行了吧?
: 必须用perl么?

N**********d
发帖数: 9292
8
不客气

【在 g***j 的大作中提到】
: 谢谢啊,做出来了
: 我对编程一点不知道
: 这只是生物信息学的一道作业
: 现在我的程序是:
: open(in_file,": while ($line=)
: {($field1,$field2,$field3,$field4)=split',',$line;
: if ($field4=~ /.\s./) { chomp($field4); {print "$field1,"$field4"\n";}}
: else {print "$field1,$field4";}
: }

1 (共1页)
进入Xibei版参与讨论
相关主题
SORTING 中文 IN ORACLE问一个二硫键形成的实验问题
问一个小问题!My Outline of Contributions
一个SQL问题EB1A写contribution部分小标题分配的问题
急问Access Query问题:怎样查询最后一个非空的数值,谢谢问个数据库问题,即删
Re: 急问,妈妈睡眠不好,请问有什么好的保健药么? (转载)帮忙看下我这个Cutting的plan!
说说抑郁症也来试试低碳高蛋白饮食
perl 请教说一下我的减肥经历吧
请教long PCR引物设计本月24号在Canton MI 的比赛到底什么具体情况?
相关话题的讨论汇总
话题: field4话题: perl话题: field1话题: 单词话题: file