如何使用perl在长字符串中提取大写单词

时间:2014-05-01 20:13:31

标签: string perl case-sensitive

我试图找到一种方法,使用perl从相当长的字符串中仅提取大写单词(至少三个连续的高位字符,加上数字)。

示例:

"Hello world, thank GOD it's Friday, I can watch EPISODE4" 

输出:

"GOD EPISODE4"

出于某种原因,我无法想出一个合理的方法来做到这一点,任何想法?谢谢!

2 个答案:

答案 0 :(得分:1)

使用字符类:

my @matches = ( $string =~ /\b[[:upper:]|[:digit:]]{3,}+\b/g );
say join " - ", @matches;

(你说的是大写字母数字。你没有说明这个数字的位置。你也没有说我是否需要用这个数字做点什么

编辑您的问题以包含其他要求。)

答案 1 :(得分:0)

这将为您提供超过3个字符的大写单词,最后可能有也可能没有数字:

my $str = "Hello world, thank GOD its Friday, I can watch EPISODE4"; 
my @matches = ($str =~ /\b([A-Z]{3,}+[0-9]*)\b/g);

您可以修改它以在数字后面查找大写字符:

my @matches = ($str =~ /\b([A-Z]{3,}+[0-9]*[A-Z]*)\b/g);