首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除第二和第二次匹配之间的所有内容。

删除第二和第二次匹配之间的所有内容。
EN

Stack Overflow用户
提问于 2015-03-22 15:02:20
回答 2查看 62关注 0票数 0

我有字符串,我想格式化。我想移除第二次和第二次最后之间的一切;

输入

代码语言:javascript
复制
cellular organisms;Eukaryota;Opisthokonta;Metazoa;Eumetazoa;Bilateria;Protostomia;Ecdysozoa;Panarthropoda;Arthropoda;Mandibulata;Pancrustacea;Hexapoda;Insecta;Dicondylia;Pterygota;Neoptera;Endopterygota;Coleoptera;Polyphaga;Cucujiformia;Tenebrionoidea;Tenebrionidae;Tenebrionidae incertae sedis;Tribolium;Tribolium castaneum;

输出

代码语言:javascript
复制
cellular organisms;Eukaryota;Tribolium castaneum;

我试过了。

代码语言:javascript
复制
$ sed 's/;[^;]*//' <<<"cellular organisms;Eukaryota;Opisthokonta;Metazoa;Eumetazoa;Bilateria;Protostomia;Ecdysozoa;Panarthropoda;Arthropoda;Mandibulata;Pancrustacea;Hexapoda;Insecta;Dicondylia;Pterygota;Neoptera;Endopterygota;Coleoptera;Polyphaga;Cucujiformia;Tenebrionoidea;Tenebrionidae;Tenebrionidae incertae sedis;Tribolium;Tribolium castaneum;"    

生产

代码语言:javascript
复制
cellular organisms;Opisthokonta;Metazoa;Eumetazoa;Bilateria;Protostomia;Ecdysozoa;Panarthropoda;Arthropoda;Mandibulata;Pancrustacea;Hexapoda;Insecta;Dicondylia;Pterygota;Neoptera;Endopterygota;Coleoptera;Polyphaga;Cucujiformia;Tenebrionoidea;Tenebrionidae;Tenebrionidae incertae sedis;Tribolium;Tribolium castaneum;    

非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-22 15:36:46

您可以在Perl中使用此regexp。

代码语言:javascript
复制
perl -pE's/;.*?\K;.*(?=;.*;)//' <<<'cellular organisms;Eukaryota;Opisthokonta;...;Tribolium;Tribolium castaneum;'
票数 1
EN

Stack Overflow用户

发布于 2015-03-22 15:24:57

通过这样简单的字段选择,您可以使用split将字符串分隔到字段中,选择想要的字段,并将它们与join放在一起。

请注意,您必须为split的第三个参数提供一个负数,以防止它丢弃拖尾空字段。

看上去像这样

代码语言:javascript
复制
use strict;
use warnings;

my $s = 'cellular organisms;Eukaryota;Opisthokonta;Metazoa;Eumetazoa;Bilateria;Protostomia;Ecdysozoa;Panarthropoda;Arthropoda;Mandibulata;Pancrustacea;Hexapoda;Insecta;Dicondylia;Pterygota;Neoptera;Endopterygota;Coleoptera;Polyphaga;Cucujiformia;Tenebrionoidea;Tenebrionidae;Tenebrionidae incertae sedis;Tribolium;Tribolium castaneum;';

my $ss = join ';', (split /;/, $s, -1)[0,1,-2,-1];

print $ss, "\n";

输出

代码语言:javascript
复制
cellular organisms;Eukaryota;Tribolium castaneum;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29195886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档