首页 > 解决方案 > perl:获取一个子字符串,直到最后一个字符出现

问题描述

在 perl 中,从这里:

gi|1339058241|ref|XP_023717639.1|zinc finger and BTB domain-containing protein 18-like [Cryptotermes secundus]

如果我的角色是|,我怎样才能得到字符串:

gi|1339058241|ref|XP_023717639.1|

谢谢。

标签: stringperlcharacter

解决方案


在 Perl 中,默认情况下匹配是“贪婪的”,因此您可以简单地匹配所有内容,直到您用作分隔符的字符:

$foo="gi|1339058241|ref|XP_023717639.1|zinc finger and BTB domain-containing protein 18-like [Cryptotermes secundus]";
$foo =~ /.*\|/; 
print "$&\n"

$&表示最后一次成功的模式匹配所匹配的字符串,在这种情况下,是直到最后一个字符的所有内容|


推荐阅读