perlperl 匹配空格模式

新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 27, 距离下一级还需 173 积分
论坛徽章:1
文件p中有10个字符
从文件p中读取字符作为特殊字符
在文件f.gff.gz
&NP_ arylamine N-acetyltransferase 2 [Homo sapiens]
MDIEAYFERIGYKNSRNKLDLETLTDILEHQIRAVPFENLNMHCGQAMELGLEAIFDHIVRRNRGGWCLQVNQLLYWALT
TIGFQTTMLGGYFYIPPVNKYSTGMVHLLLQVTIDGRNYIVDAGSGSSSQMWQPLELISGKDQPQVPCIFCLTEERGIWY
LDQIRREQYITNKEFLNSHLLPKKKHQKIYLFTLEPRTIEDFESMNTYLQTSPTSSFITTSFCSLQTPEGVYCLVGFILT
YRKFNYKDNTDLVEFKTLTEEEVEEVLRNIFKISLGRNLVPKPGDGSLTI
&(省略n行)
&NP_ medium-chain specific acyl-CoA dehydrogenase, mitochondrial isoform a precursor [Homo sapiens]
MAAGFGRCCRVLRSISRFHWRSQHTKANRQREPGLGFSFEFTEQQKEFQATARKFAREEIIPVAAEYDKTGEYPVPLIRR
AWELGLMNTHIPENCGGLGLGTFDACLISEELAYGCTGVQTAIEGNSLGQMPIIIAGNDQQKKKYLGRMTEEPLMCAYCV
TEPGAGSDVAGIKTKAEKKGDEYIINGQKMWITNGGKANWYFLLARSDPDPKAPANKAFTGFIVEADTPGIQIGRKELNM
GQRCSDTRGIVFEDVKVPKENVLIGDGAGFKVAMGAFDKTRPVVAAGAVGLAQRALDEATKYALERKTFGKLLVEHQAIS
FMLAEMAMKVELARMSYQRAAWEVDSGRRNTYYASIAKAFAGDIANQLATDAVQILGGNGFNTEYPVEKLMRDAKIYQIY
EGTSQIQRLIVAREHIDKYKN
&NP_ short-chain specific acyl-CoA dehydrogenase, mitochondrial isoform 1 precursor [Homo sapiens]
MAAALLARASGPARRALCPRAWRQLHTIYQSVELPETHQMLLQTCRDFAEKELFPIAAQVDKEHLFPAAQVKKMGGLGLL
AMDVPEELGGAGLDYLAYAIAMEEISRGCASTGVIMSVNNSLYLGPILKFGSKEQKQAWVTPFTSGDKIGCFALSEPGNG
SDAGAASTTARAEGDSWVLNGTKAWITNAWEASAAVVFASTDRALQNKGISAFLVPMPTPGLTLGKKEDKLGIRGSSTAN
LIFEDCRIPKDSILGEPGMGFKIAMQTLDMGRIGIASQALGIAQTALDCAVNYAENRMAFGAPLTKLQVIQFKLADMALA
LESARLLTWRAAMLKDNKKPFIKEAAMAKLAASEAATAISHQAIQILGGMGYVTEMPAERHYRDARITEIYEGTSEIQRL
VIAGHLLRSYRS
中去匹配特殊字符并输出到x文件里
若匹配的特殊字符为“NP_”
输出的结果为:
&NP_ short-chain specific acyl-CoA dehydrogenase, mitochondrial isoform 1 precursor [Homo sapiens]
MAAALLARASGPARRALCPRAWRQLHTIYQSVELPETHQMLLQTCRDFAEKELFPIAAQVDKEHLFPAAQVKKMGGLGLL
AMDVPEELGGAGLDYLAYAIAMEEISRGCASTGVIMSVNNSLYLGPILKFGSKEQKQAWVTPFTSGDKIGCFALSEPGNG
SDAGAASTTARAEGDSWVLNGTKAWITNAWEASAAVVFASTDRALQNKGISAFLVPMPTPGLTLGKKEDKLGIRGSSTAN
LIFEDCRIPKDSILGEPGMGFKIAMQTLDMGRIGIASQALGIAQTALDCAVNYAENRMAFGAPLTKLQVIQFKLADMALA
LESARLLTWRAAMLKDNKKPFIKEAAMAKLAASEAATAISHQAIQILGGMGYVTEMPAERHYRDARITEIYEGTSEIQRL
VIAGHLLRSYRS
求各位大神帮帮忙 ,菜鸟在此谢谢咯
(10.01 KB, 下载次数: 1)
17:29 上传
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
大富大贵, 积分 15681, 距离下一级还需 4319 积分
论坛徽章:284
本帖最后由 sunzhiguolu 于
18:05 编辑
litter_kid
1.& 文件p中有10个字符, 请问 10 个字符指的是啥?
XP_
2.& 文件f.gff.gz 各段之间是否存在分隔符.
白手起家, 积分 27, 距离下一级还需 173 积分
论坛徽章:1
1#10个字符串就如看到的一样,如:XP_
f.gff.gz如下:
&NP_ alpha-2-macroglobulin precursor [Homo sapiens]
MGKNKLLHPSLVLLLLVLLPTDASVSGKPQYMVLVPSLLHTETTEKGCVLLSYLNETVTVSASLESVRGNRSLFTDLEAE
NDVLHCVAFAVPKSSSNEEVMFLTVQVKGPTQEFKKRTTVMVKNEDSLVFVQTDKSIYKPGQTVKFRVVSMDENFHPLNE
LIPLVYIQDPKGNRIAQWQSFQLEGGLKQFSFPLSSEPFQGSYKVVVQKKSGGRTEHPFTVEEFVLPKFEVQVTVPKIIT
ILEEEMNVSVCGLYTYGKPVPGHVTVSICRKYSDASDCHGEDSQAFCEKFSGQLNSHGCFYQQVKTKVFQLKRKEYEMKL
HTEAQIQEEGTVVELTGRQSSEITRTITKLSFVKVDSHFRQGIPFFGQVRLVDGKGVPIPNKVIFIRGNEANYYSNATTD
EHGLVQFSINTTNVMGTSLTVRVNYKDRSPCYGYQWVSEEHEEAHHTAYLVFSPSKSFVHLEPMSHELPCGHTQTVQAHY
ILNGGTLLGLKKLSFYYLIMAKGGIVRTGTHGLLVKQEDMKGHFSISIPVKSDIAPVARLLIYAVLPTGDVIGDSAKYDV
ENCLANKVDLSFSPSQSLPASHAHLRVTAAPQSVCALRAVDQSVLLMKPDAELSASSVYNLLPEKDLTGFPGPLNDQDDE
DCINRHNVYINGITYTPVSSTNEKDMYSFLEDMGLKAFTNSKIRKPKMCPQLQQYEMHGPEGLRVGFYESDVMGRGHARL
VHVEEPHTETVRKYFPETWIWDLVVVNSAGVAEVGVTVPDTITEWKAGAFCLSEDAGLGISSTASLRAFQPFFVELTMPY
SVIRGEAFTLKATVLNYLPKCIRVSVQLEASPAFLAVPVEKEQAPHCICANGRQTVSWAVTPKSLGNVNFTVSAEALESQ
ELCGTEVPSVPEHGRKDTVIKPLLVEPEGLEKETTFNSLLCPSGGEVSEELSLKLPPNVVEESARASVSVLGDILGSAMQ
NTQNLLQMPYGCGEQNMVLFAPNIYVLDYLNETQQLTPEIKSKAIGYLNTGYQRQLNYKHYDGSYSTFGERYGRNQGNTW
LTAFVLKTFAQARAYIFIDEAHITQALIWLSQRQKDNGCFRSSGSLLNNAIKGGVEDEVTLSAYITIALLEIPLTVTHPV
VRNALFCLESAWKTAQEGDHGSHVYTKALLAYAFALAGNQDKRKEVLKSLNEEAVKKDNSVHWERPQKPKAPVGHFYEPQ
APSAEVEMTSYVLLAYLTAQPAPTSEDLTSATNIVKWITKQQNAQGGFSSTQDTVVALHALSKYGAATFTRTGKAAQVTI
QSSGTFSSKFQVDNNNRLLLQQVSLPELPGEYSMKVTGEGCVYLQTSLKYNILPEKEEFPFALGVQTLPQTCDEPKAHTS
FQISLSVSYTGSRSASNMAIVDVKMVSGFIPLKPTVKMLERSNHVSRTEVSSNHVLIYLDKVSNQTLSLFFTVLQDVPVR
DLKPAIVKVYDYYETDEFAIAEYNAPCSKDLGNA
&NP_ arylamine N-acetyltransferase 2 [Homo sapiens]
MDIEAYFERIGYKNSRNKLDLETLTDILEHQIRAVPFENLNMHCGQAMELGLEAIFDHIVRRNRGGWCLQVNQLLYWALT
TIGFQTTMLGGYFYIPPVNKYSTGMVHLLLQVTIDGRNYIVDAGSGSSSQMWQPLELISGKDQPQVPCIFCLTEERGIWY
LDQIRREQYITNKEFLNSHLLPKKKHQKIYLFTLEPRTIEDFESMNTYLQTSPTSSFITTSFCSLQTPEGVYCLVGFILT
YRKFNYKDNTDLVEFKTLTEEEVEEVLRNIFKISLGRNLVPKPGDGSLTI
&NP_ medium-chain specific acyl-CoA dehydrogenase, mitochondrial isoform a precursor [Homo sapiens]
MAAGFGRCCRVLRSISRFHWRSQHTKANRQREPGLGFSFEFTEQQKEFQATARKFAREEIIPVAAEYDKTGEYPVPLIRR
AWELGLMNTHIPENCGGLGLGTFDACLISEELAYGCTGVQTAIEGNSLGQMPIIIAGNDQQKKKYLGRMTEEPLMCAYCV
TEPGAGSDVAGIKTKAEKKGDEYIINGQKMWITNGGKANWYFLLARSDPDPKAPANKAFTGFIVEADTPGIQIGRKELNM
GQRCSDTRGIVFEDVKVPKENVLIGDGAGFKVAMGAFDKTRPVVAAGAVGLAQRALDEATKYALERKTFGKLLVEHQAIS
FMLAEMAMKVELARMSYQRAAWEVDSGRRNTYYASIAKAFAGDIANQLATDAVQILGGNGFNTEYPVEKLMRDAKIYQIY
EGTSQIQRLIVAREHIDKYKN
&NP_ short-chain specific acyl-CoA dehydrogenase, mitochondrial isoform 1 precursor [Homo sapiens]
MAAALLARASGPARRALCPRAWRQLHTIYQSVELPETHQMLLQTCRDFAEKELFPIAAQVDKEHLFPAAQVKKMGGLGLL
AMDVPEELGGAGLDYLAYAIAMEEISRGCASTGVIMSVNNSLYLGPILKFGSKEQKQAWVTPFTSGDKIGCFALSEPGNG
SDAGAASTTARAEGDSWVLNGTKAWITNAWEASAAVVFASTDRALQNKGISAFLVPMPTPGLTLGKKEDKLGIRGSSTAN
LIFEDCRIPKDSILGEPGMGFKIAMQTLDMGRIGIASQALGIAQTALDCAVNYAENRMAFGAPLTKLQVIQFKLADMALA
LESARLLTWRAAMLKDNKKPFIKEAAMAKLAASEAATAISHQAIQILGGMGYVTEMPAERHYRDARITEIYEGTSEIQRL
VIAGHLLRSYRS
大富大贵, 积分 15681, 距离下一级还需 4319 积分
论坛徽章:284
试下,perl -nle 'if(@ARGV){$h{$_}=1;next}$P=$h{$1}||0 if(/\A&(\S+)/);print if($P)' p f.gff.gz复制代码
白手起家, 积分 27, 距离下一级还需 173 积分
论坛徽章:1
sunzhiguolu
谢谢大神,虽没达到预期效果,但我还是写出来了
大富大贵, 积分 15681, 距离下一级还需 4319 积分
论坛徽章:284
litter_kid
虽没达到预期效果
你这话是啥意思, 我的那个有问题吗?
白手起家, 积分 27, 距离下一级还需 173 积分
论坛徽章:1
sunzhiguolu
木有结果,可能是我运行错了....
大富大贵, 积分 15681, 距离下一级还需 4319 积分
论坛徽章:284
litter_kid
你的运行环境是?
白手起家, 积分 27, 距离下一级还需 173 积分
论坛徽章:1
sunzhiguolu
命令行的perl我不太会,现在老师教的都是在linux服务器下用vim编写脚本语句,所以我说运行有问题
大富大贵, 积分 15681, 距离下一级还需 4319 积分
论坛徽章:284
你再试下,#!/usr/bin/perl
open (my $fh, '&', shift);
my %hKeys = map { $_, 1} &$fh&;
close ($fh);
my $P
while (&&){
& && &&&$Print = $hKeys{$1} || 0 if (/\A&(\S+)/);
& && &&&print if ($Print);
}
复制代码君,已阅读到文档的结尾了呢~~
perl模式匹配总结
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
perl模式匹配总结
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口perl中的模式匹配_百度知道perl正则表达式多行模式无法匹配问题 - 开源中国社区
当前访客身份:游客 [
当前位置:
用perl脚本调用ant进行批量编译,希望编译之后列出编译失败的模块数量和列表,代码如下:
open MODLIST, && list.txt& or die &can't open list.txt:\n $!&;
$faild = 0;
while(&MODLIST&) {
$antmsg = `ant -Dmodel=$_ 2&&1`;
print &\n====ant message====\n$antmsg\n====ant message====\n&;
if($antmsg =~ &/^BUILD FAILED$/m&){
print &$_ build faild! check the antlog&;
push @faillist, $_;
close MODLIST;
print &$faild models failed&;
for(@faillist){
print &\n&;
& & &&开始想用system函数调用ant通过返回值确定是否成功,经过测试发现不论ant执行成功或是失败,system返回值始终为0.于是改用捕获ant输出的方式,但结果是“/^BUILD FAILED$/m”部分始终匹配不成功。在正则表达式工具中测试过模式和文本可以匹配。
& & 以下是list.txt中有两条记录时的执行结果:
D:\workspace\source\xxxx\test\uat-test&perl test.pl
====ant message==== Buildfile: D:\workspace\source\xxxx\test\uat-test\build.xml
BUILD FAILED D:\workspace\source\xxxx\test\uat-test\build.xml:80: The element type &path& mu st be terminated by the matching end-tag &&/path&&.
Total time: 0 seconds
====ant message====
====ant message==== Buildfile: D:\workspace\source\xxxx\test\uat-test\build.xml
BUILD FAILED D:\workspace\source\xxxx\test\uat-test\build.xml:80: The element type &path& mu st be terminated by the matching end-tag &&/path&&.
Total time: 0 seconds
====ant message==== 0 models failed
& & 请各位网友指点:
& & 1.为何system函数调用ant,不论执行结果成败始终返回0?
& & 2.为何/^BUILD FAILED$/m部分无法匹配
& & 多谢!
共有1个答案
<span class="a_vote_num" id="a_vote_num_
问题已解决,我的代码有bug:匹配模式上不应该加引号。
更多开发者职位上
有什么技术问题吗?
麦当猫的其它问题
类似的话题[perl]理解贪婪匹配和最小匹配之间的区别
ZDNet软件频道 时间: 作者: |  
本文关键词:
正则表达式的新手经常将贪婪匹配和最小匹配理解错误。默认情况下,Perl 的正则表达式是“贪婪地”,也就是说它们将尽可能多地匹配字符。
正则表达式的新手经常将贪婪匹配和最小匹配理解错误。默认情况下,Perl 的正则表达式是“贪婪地”,也就是说它们将尽可能多地匹配字符。
下面的脚本打印出“matched defgabcdef”,因为它尽可能多地匹配模式,直至结尾的‘g’。
$data = 'abcdefgabcdefg';
$data =~ /abc(.+)g/i;
print &matched
要改变匹配特点,只须简单地在量词(加号[+]或星号[*])后面加一个问号(?)即可。在上面的程序中把模式改为在‘+’之后包含一个‘?’。
$data =~ /abc(.+?)g/i;
输出变成“matched def”,因为模式不再贪婪,而在允许模式匹配的同时匹配最少数目的字符。
对于可能得到的匹配多于期望的匹配的情况,最小匹配是必要的。下面是一个例子:
$data = 'MSFT +5%
IBM +2% 4';
print &matched
&&&while ($data =~
/(w+).+$(d+)/g);
你可能期望这段代码给出两行输出,一行是 MSFT,另外一行是 IBM。但是它的输出却只有(不正确的)一行,“MSFT 4”。‘+’模式匹配它能匹配的所有字符,也就是“+5%
IBM +2%”。加一个‘?’将模式改为最小匹配就可以得到期望的结果。
责任编辑:
上一篇:下一篇:
? ? ? ? ? ? ?
最受关注的文章:
关键字: &&&&&&&&&& 关键字: &&&&&& 关键字: &&&&&&&& 关键字: && 关键字: &&&&
最新更新文章:
??????????
本篇文章共有
- 发表评论 -
??????????
Copyright& 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备号-159京公网安备:

我要回帖

更多关于 perl 匹配字符串 的文章

 

随机推荐